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

Download history 1602/week @ 2024-01-28 1717/week @ 2024-02-04 1345/week @ 2024-02-11 1723/week @ 2024-02-18 3615/week @ 2024-02-25 1752/week @ 2024-03-03 1797/week @ 2024-03-10 2071/week @ 2024-03-17 1829/week @ 2024-03-24 1897/week @ 2024-03-31 2006/week @ 2024-04-07 2037/week @ 2024-04-14 1549/week @ 2024-04-21 1402/week @ 2024-04-28 1294/week @ 2024-05-05 1569/week @ 2024-05-12

6,042 downloads per month
Used in 12 crates (6 directly)

MIT/Apache

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