There may not be a good answer for this question, but I have code that I would like to share between two different Rust projects WITHOUT publishing the crate to crates.io.
The code is proprietary and I don't want to put it out into the wild.
registry/src If a downloaded . crate archive is required by a package, it is unpacked into registry/src folder where rustc will find the . rs files.
Keyword crate A Rust binary or library. The primary use of the crate keyword is as a part of extern crate declarations, which are used to specify a dependency on a crate external to the one it's declared in. Crates are the fundamental compilation unit of Rust code, and can be seen as libraries or projects.
but it's proprietary code and I don't want to put it out into the wild.
You don't have to publish a crate. Specifically, just create the crate (cargo new shared_stuff
) then specify the path to the common crate(s) in the dependent project's Cargo.toml
:
[dependency.shared_stuff]
path = "path/to/shared/crate"
The Cargo documentation has an entire section on types of dependencies:
I believe that Cargo will allow you to fetch from a private git repository (such as on Github or another privately hosted service, such as GitLab), but I haven't tried that personally. Based on my searching, you will need to have previously authenticated or otherwise configured git to not require an interactive password entry.
It's theoretically possible to create your own crate registry. I've not even attempted to do this, but the machinery is present in Cargo to handle it.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With