158 releases

new 0.0.212 Apr 22, 2024
0.0.207 Mar 25, 2024
0.0.190 Dec 18, 2023
0.0.187 Nov 27, 2023
0.0.26 Nov 30, 2020

#99 in Filesystem

Download history 1803/week @ 2024-01-03 2139/week @ 2024-01-10 2055/week @ 2024-01-17 1570/week @ 2024-01-24 1588/week @ 2024-01-31 1547/week @ 2024-02-07 1575/week @ 2024-02-14 2262/week @ 2024-02-21 3047/week @ 2024-02-28 1891/week @ 2024-03-06 1854/week @ 2024-03-13 2062/week @ 2024-03-20 1753/week @ 2024-03-27 2051/week @ 2024-04-03 1950/week @ 2024-04-10 1633/week @ 2024-04-17

7,640 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–17MB
~181K SLoC