172 releases

new 0.0.226 Jul 22, 2024
0.0.222 Jun 24, 2024
0.0.207 Mar 25, 2024
0.0.190 Dec 18, 2023
0.0.26 Nov 30, 2020

#295 in Filesystem

Download history 2043/week @ 2024-04-02 1974/week @ 2024-04-09 1948/week @ 2024-04-16 1408/week @ 2024-04-23 1393/week @ 2024-04-30 1262/week @ 2024-05-07 1703/week @ 2024-05-14 1644/week @ 2024-05-21 1698/week @ 2024-05-28 1269/week @ 2024-06-04 1830/week @ 2024-06-11 1622/week @ 2024-06-18 1568/week @ 2024-06-25 1800/week @ 2024-07-02 1731/week @ 2024-07-09 1352/week @ 2024-07-16

6,734 downloads per month
Used in 13 crates (7 directly)

MIT/Apache

175KB
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–15MB
~183K SLoC