162 releases
new 0.0.216 | May 20, 2024 |
---|---|
0.0.213 | Apr 29, 2024 |
0.0.207 | Mar 25, 2024 |
0.0.190 | Dec 18, 2023 |
0.0.26 | Nov 30, 2020 |
#310 in Filesystem
6,042 downloads per month
Used in 12 crates
(6 directly)
170KB
3.5K
SLoC
In rust-analyzer, we maintain a strict separation between pure abstract semantic project model and a concrete model of a particular build system.
Pure model is represented by the base_db::CrateGraph
from another crate.
In this crate, we are concerned with "real world" project models.
Specifically, here we have a representation for a Cargo project
(CargoWorkspace
) and for manually specified layout (ProjectJson
).
Roughly, the things we do here are:
- Project discovery (where's the relevant Cargo.toml for the current dir).
- Custom build steps (
build.rs
code generation and compilation of procedural macros). - Lowering of concrete model to a
base_db::CrateGraph
Dependencies
~7–18MB
~190K SLoC