New rust backend: libnix

Hi everyone,

TL;DR;

  • Seeking permission to use the cargo/rust trademarks for my work on cargo at GitHub - nixcloud/cargo: The Rust package manager which is intended as a PR to upstream cargo
  • Seeking guidance/advice on the merging process for such a backend addition
  • Seeking permission to support the nix users commercially to make this PR happen

Motivation & Vision

I'm working on a fork of Cargo to add a second backend to build software called the "libnix backend", which aims to improve integration with Nix-based systems for better package management and reproducibility. This is essentially an extension to Cargo's capabilities, and my long-term goal is to contribute these changes back upstream for potential merging into the official Cargo.

I only see value in this work when this is contributed into cargo as having several package managers / build systems for other languages showed, taken C/C++ as an example, lead to confusion and the downfall of these. Having one main package manager Cargo for Rust is making life for users so much easier. For this I want to cite a posting of mine libnix - rust abstractions to support that point.

Legal

However, I'm aware of the Rust Foundation's trademark policy regarding the "Cargo" name, which restricts its use for modified versions unless they fall under specific allowances (e.g., platform integration). To avoid any issues, I'd like to seek guidance or permission from the team and/or Foundation on whether I can continue using the "Cargo" name for this fork during development and distribution. If not, please help me to understand what I have to do.

I understand the policy allows hosting forks for proposed upstream improvements without marketing/promoting them as official. My repo is clearly namespaced under nixcloud/, and I add disclaimers that it's unofficial/experimental. However, since this adds a substantial new backend (beyond simple porting), I'm unsure if it qualifies for unrestricted name use—hence seeking guidance or explicit permission.

A few details on my plans:

  • The current fork of Cargo is open-source under the same license.

  • I intend to offer commercial support services around this fork/branch (e.g., consulting, custom integrations for enterprises using Nix with Rust), as a bridge between Nix users and traditional Rust development teams, thereby helping to merge these features upstream, with clear disclaimers that it's unofficial and not endorsed by the Rust Project/Foundation

  • This isn't meant to compete with official Cargo; it's a proof-of-concept to demonstrate the libnix backend's value and facilitate upstream contributions.

Feedback

Could Cargo team members or Foundation reps advise on:

  • Whether this qualifies under the "platform integration" allowance?
  • The formal process for requesting written permission if needed (e.g., via contact@rustfoundation.org)?
  • Best path for proposing/reviewing a new build backend for potential upstream merge?

I'd appreciate any feedback. Thanks!

My work

  • https://lastlog.de/blog/libnix_cargo-nix-backend.html
  • https://github.com/nixcloud/cargo
  • https://nlnet.nl/project/libnix/

Please note that work is funded by nlnet.

5 Likes

I expect the trademark usage will be fine, but you should go ahead and email that contact address about this. It does not need to be formal -- the level of detail you've provided here is probably enough, and they will ask for clarification if needed. And in turn, you can also ask for whatever formal documentation you need.

7 Likes

That likely eventually requires an RFC. I would recommend breaking down to small discussions and incremental features if possible, and follow the contributor guide: Process - Cargo Contributor Guide

1 Like