Questions And Answers

More Tutorials

How to get crate version in Rust?

Cargo does pass some metadata to the compiler through environment variables. The compiler environment is populated by fill_env in Cargo's code. This code has become more complex since earlier versions, and the entire list of variables is no longer obvious from it because it can be dynamic.

Below is a set of variables available:

You can access environment variables using the env!() macro. If you want you compiler to compile without Cargo you can use option_env!()

How to get Cargo version:

fn main() {
    const VERSION: &'static str = env!("CARGO_PKG_VERSION");
    const OPTION_VERSION: Option<&'static str> = option_env!("CARGO_PKG_VERSION");

    println!("MyProgram v{}", VERSION);
    println!("MyProgram v{}", OPTION_VERSION.unwrap_or("unknown"));


In this page (written and validated by ) you learned about How to get crate version in Rust? . What's Next? If you are interested in completing Rust tutorial, we encourage you simply to start here: Rust Tutorial.

Incorrect info or code snippet? We take very seriously the accuracy of the information provided on our website. We also make sure to test all snippets and examples provided for each section. If you find any incorrect information, please send us an email about the issue:

Share On:

Mockstacks was launched to help beginners learn programming languages; the site is optimized with no Ads as, Ads might slow down the performance. We also don't track any personal information; we also don't collect any kind of data unless the user provided us a corrected information. Almost all examples have been tested. Tutorials, references, and examples are constantly reviewed to avoid errors, but we cannot warrant full correctness of all content. By using, you agree to have read and accepted our terms of use, cookies and privacy policy.