crate2nix VS proc-macro-workshop

Compare crate2nix vs proc-macro-workshop and see what are their differences.

crate2nix

rebuild only changed crates in CI with crate2nix and nix (by nix-community)

proc-macro-workshop

Learn to write Rust procedural macros  [Rust Latam conference, Montevideo Uruguay, March 2019] (by dtolnay)
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
crate2nix proc-macro-workshop
10 26
321 3,816
1.6% -
9.3 4.3
3 days ago 24 days ago
Nix Rust
Apache License 2.0 Apache License 2.0
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.

crate2nix

Posts with mentions or reviews of crate2nix. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-02.
  • Transitioning to Rust as a company
    8 projects | /r/rust | 2 Jun 2023
  • How to package a Rust app using Nix
    1 project | dev.to | 6 Jan 2023
    I'll use nixpkgs' buildRustPackage. There's a few other tools, my favorite being crate2nix, but we'll leave that to a future tutorial.
  • Nix shell related questions (for rust)
    5 projects | /r/NixOS | 24 Dec 2022
    If you want to iterate with nix instead of cargo, crate2nix and cargo2nix provides more caching and more fine control over your dependencies. I haven't used these two so you would have to decide for yourself. You may also want to try out nocargo for something more experimental.
  • Introducing Crane: Composable and Cacheable Builds with Cargo and Nix
    3 projects | /r/rust | 8 May 2022
    2 projects | /r/NixOS | 22 Jan 2022
    I'm yet to try it out, but from the blog post, the README and the source it appears that Crane builds all dependencies in one derivation (separately from the main crate). This means that if a dependency gets added, removed or changed, all dependencies of a crate will be rebuilt. This is in contrast with https://github.com/kolloch/crate2nix, which does build every dependency in a separate package, thus you don't need to rebuild other dependencies if you only change a small part of the tree.
  • Nixery – Docker images on the fly with Nix
    8 projects | news.ycombinator.com | 18 Apr 2022
    Yes, you will have to package it if it's not already in nixpkgs.

    The good news is once you learn how, it's basically trivial with crate2nix[0], which can autogenerate nix derivations from rust crates

    [0] https://github.com/kolloch/crate2nix

  • Help with Nix and Rust
    1 project | /r/rust | 16 Jul 2021
    From my quick reading of cargo2nix's webpage yes. https://github.com/kolloch/crate2nix has a workspaces section.
  • How do you install packages not in Nixpkgs?
    5 projects | /r/NixOS | 15 Apr 2021
    As for your two applications, they're both written in Rust, and I like https://github.com/kolloch/crate2nix as a way to package Rust crates with Nix. BTW, wezterm is already in nixpkgs!
  • Nix-ifying a Rust project
    12 projects | /r/rust | 7 Apr 2021
    I like the way crate2nix works. I have made a flake template for it here. Sometimes it requires a couple of overrides to fix some misbehaving crates (see https://github.com/balsoft/simple-osd-daemons/blob/master/flake.nix#L29 for an example of such overrides), but otherwise it's fantastic. It doesn't require any hash nonsense, it downloads and builds all the crates separately (unlike naersk or other solutions) so you get all the benefits of Nix (reproducibility and proper caching).
  • How to do a full, reproducible archive of a Rust project?
    3 projects | /r/rust | 8 Jan 2021
    Crate2nix might help: https://github.com/kolloch/crate2nix

proc-macro-workshop

Posts with mentions or reviews of proc-macro-workshop. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2023-06-29.
  • Why does the core not provide a "New" derive attribute?
    1 project | /r/rust | 9 Dec 2023
    Tangentially, the proc macro workshop walks through building a derive macro implementing a builder pattern. From experience, I can tell I couldn't ever write proc macros just by reading the manual, going through it is really helpful https://github.com/dtolnay/proc-macro-workshop/blob/master/README.md
  • Help on spans for proc macros
    1 project | /r/rust | 3 Jul 2023
    I am working on the proc macro workshop and am a little stuck on the builder portion of the workshop. Step 08-unrecognized-attributes wants you to handle the car where the field modifier has a misspelled portion (eac instead of each)
  • Practical Procedural Macros in Rust
    3 projects | news.ycombinator.com | 29 Jun 2023
    I would very much second the suggestion to do David Tolnay’s Proc Macro Workshop if you want to start understanding how to write them. I’d been writing Rust for years but always kind of avoided proc macros.

    When I had a need for them, I went through only the first section of the workshop and everything clicked. You can just do the derive macro section and all the strange and scary-looking macro syntax will make sense. I realized that there is only a bit of extra syntax but it’s used very often so it can seem a little overwhelming when reading macro code.

    https://github.com/dtolnay/proc-macro-workshop

  • Rust fact vs. fiction: 5 Insights from Google's Rust journey in 2022
    5 projects | /r/rust | 27 Jun 2023
  • A walkthough on how to write derive procedural macros
    1 project | /r/rust | 10 Jun 2023
    Another good one imo is the proc-macro-workshop.
  • Transitioning to Rust as a company
    8 projects | /r/rust | 2 Jun 2023
    Don't be afraid of proc macros and derive macros, they rule. Study the basic examples. Crates like darling and resources like David Tolnay's workshop will help. Write derives for your simpler traits and impress your colleagues.
  • What are your experiences with hack-and-learn events?
    2 projects | /r/rust | 15 May 2023
    Regarding 4, I think that macros are an interesting intermediate/advanced topic. I personally loved the material from https://github.com/dtolnay/proc-macro-workshop
  • Procedural Macros are really hard to understand
    3 projects | /r/rust | 4 Feb 2023
    It took me a while to get anything done. My mistake : I came accross the procedural macros workshop several times, and every time I dismissed it, thinking - meh I'll just hack together exactly what I need and move on. Then finally I figured there is no way around it. The builder exercise sounds boring but it covers the topic pretty well. And then I went on to the debug one and from there was able to build the proc macro I wanted.
  • MacroKata is really good!
    2 projects | /r/rust | 22 Dec 2022
    Hey! While researching, I found this: https://github.com/dtolnay/proc-macro-workshop
  • Anything C can do Rust can do Better
    58 projects | dev.to | 1 Dec 2022
    Rust Latam: procedural macros workshop - David Tolnay

What are some alternatives?

When comparing crate2nix and proc-macro-workshop you can also consider the following projects:

naersk - Build Rust projects in Nix - no configuration, no code generation, no IFD, sandbox friendly.

sccache - Sccache is a ccache-like tool. It is used as a compiler wrapper and avoids compilation when possible. Sccache has the capability to utilize caching in remote storage environments, including various cloud storage options, or alternatively, in local storage.

cargo2nix - Granular builds of Rust projects for Nix

cargo-expand - Subcommand to show result of macro expansion

rust-nix-template - Rust project template with Nix (Flakes) and VSCode support

rust-learnings - Collection of Rust learnings through implementation

crates.io-index - Registry index for crates.io

style - css for rust

nix-templates - Nix Flake templates for various languages

quote - Rust quasi-quoting

nixos - My NixOS Configurations

style - Style Dart Backend Framework