112 releases

0.0.149 Jan 16, 2023
0.0.145 Dec 26, 2022
0.0.141 Nov 28, 2022
0.0.122 Jul 25, 2022
0.0.26 Nov 30, 2020
Download history 1311/week @ 2022-12-07 980/week @ 2022-12-14 1813/week @ 2022-12-21 1424/week @ 2022-12-28 1432/week @ 2023-01-04 1279/week @ 2023-01-11 1259/week @ 2023-01-18 1584/week @ 2023-01-25 1523/week @ 2023-02-01 1769/week @ 2023-02-08 2083/week @ 2023-02-15 1680/week @ 2023-02-22 1419/week @ 2023-03-01 1430/week @ 2023-03-08 1322/week @ 2023-03-15 1061/week @ 2023-03-22

5,431 downloads per month
Used in 8 crates (4 directly)

MIT/Apache

195KB
4.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

~8–13MB
~193K SLoC