Skip to content

Dependencies

NBCL makes sure to pull is as less dependencies as possible to avoid bloat and ensure fast compilations.

Standard Dependencies

Dependencies that are used everwhere:

CrateDescriptionUse Case
pestA PEG-based parser generator.Used to parse the NBCL syntax.
pest_deriveExtension crate to pest that adds derive features to Rust.Used for the derive features to avoid manual implementation.
rustc-hashA speedy, non-cryptographic hashing algorithm used by rustc.Used to improve performance and speed up evaluation.
serdeFramework for converting Rust data to and from various data formats.To support various data formats like JSON, YAML, TOML, etc.

wasm Dependencies

Additional dependencies used only when the wasm feature is used:

CrateDescriptionUse Case
wasm_bindgenBridge for communication between Rust, Wasm, and JS.Used for web support.
serde_jsonCrate that works with serde for converting Rust data to and from json.Used to transfer resolved data to the web.

pretty-errors Dependencies

Additional dependencies used only when the pretty-errors feature is used:

CrateDescriptionUse Case
ariadneDiagnostic tool used to generate beautiful error messages.Used to generate beautiful errors from the standard error data.

Features with no Dependencies

  • module-imports
  • lib-imports
  • metadata