161 releases

new 0.0.215 May 13, 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

#101 in Filesystem

Download history 1653/week @ 2024-01-26 1687/week @ 2024-02-02 1329/week @ 2024-02-09 1740/week @ 2024-02-16 2572/week @ 2024-02-23 2729/week @ 2024-03-01 1861/week @ 2024-03-08 1854/week @ 2024-03-15 2069/week @ 2024-03-22 1752/week @ 2024-03-29 2066/week @ 2024-04-05 1940/week @ 2024-04-12 1729/week @ 2024-04-19 1396/week @ 2024-04-26 1383/week @ 2024-05-03 1175/week @ 2024-05-10

6,004 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–19MB
~193K SLoC