zls VS mrustc

Compare zls vs mrustc and see what are their differences.

zls

A Zig language server supporting Zig developers with features like autocomplete and goto definition (by zigtools)

mrustc

Alternative rust compiler (re-implementation) (by thepowersgang)
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
zls mrustc
14 75
2,394 2,087
4.3% -
9.8 8.8
4 days ago 6 days ago
Zig C++
MIT License MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

zls

Posts with mentions or reviews of zls. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-05-06.
  • Have questions/requests/issues related to the Zig Language Server?
    5 projects | /r/Zig | 6 May 2023
    There is no official documentation but the standard library provides definitions for the exchange format and an incomplete set of function for exchanging messages in Client.zig and Server.zig. You can find examples of the zig compile server in action in my PR for ZLS and a showcase of hot-code-swapping by kubkon. The code that implements the ZCS in the zig codebase can be found here.
  • Question about zls
    1 project | /r/Zig | 20 Apr 2023
    Same experience here, I did file a bug about it too: https://github.com/zigtools/zls/issues/1139
  • Lack of instructions on using IDEs to start playing with Zig
    1 project | /r/Zig | 13 Apr 2023
    Welcome to the word of new languages, I think rust just got an intellij plugin late last year and its been in 1.0 since 2015 (not to mention the years of hype around it). When it comes to "non standard" languages (meaning not the industries current go to for a given niche), it helps to assume there's no "It's just works" type editor support. Luckily most languages, even new ones have LSP servers including zig, and editors like VSCode make it pretty simple to use them.
  • ZLS in VSCode not signaling (all) errors
    1 project | /r/Zig | 16 Mar 2023
  • Allow download in build flake's build phase.
    4 projects | /r/Nix | 23 Feb 2023
    For the people who come in the future and want to know how to do it, here is the code as of today (at some point it will be in ZLS repository - github.com/zigtools/zls - and you should take a look there too to see more up-to-date code).
  • Zig is now self–hosted by default
    13 projects | news.ycombinator.com | 19 Aug 2022
  • Help building ZLS
    1 project | /r/Zig | 9 May 2022
    Commands: git clone --recurse-submodules https://github.com/zigtools/zls cd zls zig build -Drelease-safe
  • Ask HN: What tool would you buy to make your life easier?
    3 projects | news.ycombinator.com | 8 May 2022
  • Failing to Learn Zig via Advent of Code
    17 projects | news.ycombinator.com | 17 Jan 2022
    > Building is slow. It takes about ~3 seconds minimum which is frustratingly slow when I'm fighting basic syntax errors. I wish there was a fast zig check.

    > Lack of zig-analyzer makes learning hard.

    > zig fmt src/main.zig is nice. Wish it automatically ran on all files.

    I also did (well, "am doing", can only work a bit each day and am plugging through day 7 right now) AdventOfCode in Zig this year.

    These points here didn't resonate with me at all. I wonder if the author knew about or tried ZLS[0]. I had it on and integrated with my VSCode and it would check a lot of things as I went and format on save. I think I followed something like this[1] to set it up.

    [0] https://github.com/zigtools/zls

  • How in the world do you set up nvim-cmp?
    7 projects | /r/neovim | 23 Dec 2021
    cd $HOME/.local/zls && curl -L https://github.com/zigtools/zls/releases/download/0.9.0/x86_64-macos.tar.xz | tar -xJ --strip-components=1 -C .

mrustc

Posts with mentions or reviews of mrustc. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-12-08.
  • Why do lifetimes need to be leaky?
    6 projects | /r/rust | 8 Dec 2023
    No, you don't. Existential proof: mrustc ignores lifetimes. Just flat out simply ignores. It changes some corner-cases related to HRBT, yet rustc compiled by mrustc works (that's BTW mrustc exist: to bootsrap the rustc compiler).
  • I think C++ is still a desirable coding platform compared to Rust
    2 projects | news.ycombinator.com | 22 Nov 2023
    Incidentally C++ is the only way to bootstrap rust without rust today.

    https://github.com/thepowersgang/mrustc

  • Rust – Faster compilation with the parallel front-end in nightly
    3 projects | news.ycombinator.com | 10 Nov 2023
    Well, there is mrustc[0], a Rust compiler that doesn't include a borrow-checker, so it's possible to compile (at least some versions of) Rust without a borrow checker, though it might not result in the most optimized code.

    AFAIK there are some optimization like the infamous `noalias` optimization (which took several tries to get turned on[1]) that uses information established during borrow checking.

    I'm also not sure what the relation with NLL (non-lexical lifetimes) is, where I would assume you would need at least a primitive borrow-checker to establish some information that the backend might be interested in. Then again, mrustc compiles Rust versions that have NLL features without a borrow-checker, so it's again probably more on the optimization side than being essential.

    [0]: https://github.com/thepowersgang/mrustc

    [1]: https://stackoverflow.com/a/57259339

  • Running the "Reflections on Trusting Trust" Compiler
    7 projects | news.ycombinator.com | 25 Oct 2023
  • Forty years of GNU and the free software movement
    1 project | news.ycombinator.com | 19 Sep 2023
    > Maybe another memory safe language, but Rust has severe bootstrapping issues which is a hard sell for distros that care about source to binary transparency.

    It is possible to bootstrap rustc from just GCC relatively easily, although it's a little bit time consuming.

    You can use mrustc to bootstrap Rust 1.54: https://github.com/thepowersgang/mrustc

    And from then you can go through each version all the way to the current 1.72. (Each new Rust version officially needs the previous one to compile.)

  • Building rustc on sparcv9 Solaris
    1 project | /r/rust | 27 Jun 2023
    Have you tried this route : https://github.com/thepowersgang/mrustc ?
  • GCC 13 and the state of gccrs
    4 projects | /r/rust | 25 Apr 2023
    Mrustc supports Rust 1.54.0 today
  • Any alternate Rust compilers?
    10 projects | /r/rust | 10 Apr 2023
  • Stop Comparing Rust to Old C++
    10 projects | /r/cpp | 31 Jan 2023
    There are three. The official one, mrustc (no borrow checker, but can essentially compile the official rustc) and GCC (can't really compile anything substantial yet). Only rustc is production-ready though.
  • Can I make it so that only the newest version of Rust gets installed?
    1 project | /r/GUIX | 29 Jan 2023
    That probably depends on what you mean by problematic. Having an ever increasing chain of dependencies isn’t the most desirable situation so there has been some work to trim the bootstrap chain. In 2018, when the blogpost I linked above was written, mrustc was used to bootstrap rust 1.19.0; now mrustc can bootstrap rust 1.54.0 so the chain to recent versions is much shorter than if all those intervening versions back through 1.19.0 needed to be built. https://github.com/thepowersgang/mrustc

What are some alternatives?

When comparing zls and mrustc you can also consider the following projects:

zig.vim - Vim configuration for Zig

gccrs - GCC Front-End for Rust

Neovim-from-scratch - 📚 A Neovim config designed from scratch to be understandable

gccrs - GCC Front-End for Rust

nvim-treesitter - Nvim Treesitter configurations and abstraction layer

llvm-cbe - resurrected LLVM "C Backend", with improvements

zig - General-purpose programming language and toolchain for maintaining robust, optimal, and reusable software.

rust-ttapi

nvim-dap - Debug Adapter Protocol client implementation for Neovim

miri - An interpreter for Rust's mid-level intermediate representation

zigup - Download and manage zig compilers.

gcc-rust - a (WIP) Rust frontend for gcc / a gcc backend for rustc