How do I create a library and executable in one project? I just want to test my library while working on it and using tests isn't always the best way to do that. I believe I have to use [lib]
and [???]
but I haven't found the information about that at crates.io.
Asked
Active
Viewed 1,444 times
7
1 Answers
3
Indeed, it's strange that crates.io does not have a clear example of this.
To add both a library and an executable to your crate (BTW, the crate can only have one library in it), you need to defined them in [lib]
and [[bin]]
sections:
[lib]
name = "yourcrate"
[[bin]]
name = "yourcrate_bin_1"
[[bin]]
name = "yourcrate_bin_2"
With the above by default Cargo will look for the library crate root in src/lib.rs
and for binaries in src/bin/yourcrate_bin_1.rs
and src/bin/yourcrate_bin_2.rs
. You can change paths to the crate root files with path
option:
[[bin]]
name = "yourcrate_bin_2"
path = "src/yourcrate_bin_2.rs"

Vladimir Matveev
- 120,085
- 34
- 287
- 296
-
what does bin has the double "[["? – Aug 29 '15 at 13:36
-
2That's because multiple `bin` sections are possible. See [TOML](https://github.com/toml-lang/toml) description for more information, in particular, [this](https://github.com/toml-lang/toml#array-of-tables) section. – Vladimir Matveev Aug 29 '15 at 14:04