Cargo Features

[dependencies]
rumoca = { version = "0.7.28", default-features = false, features = ["cli", "lsp", "cache", "allocator", "python", "regen-parser"] }
default = allocator, cache, cli, lsp

These default features are set whenever rumoca is added without default-features = false somewhere in the dependency tree.

cli default = clap, env_logger

Required by rumoca, rumoca-fmt, rumoca-lint and rumoca-lsp binaries

lsp default = crossbeam-channel, lsp-server, notify

Full LSP: includes server protocol (NOT WASM compatible)
lsp-types is always available since it's a non-optional dependency

Affects rumoca::lsp

Required by the rumoca-lsp binary

cache default = bincode, dirs

Affects cache::compute_file_hash, cache::load_cached_ast, cache::store_cached_ast, cache::clear_cache, cache::get_cache_stats, cache::get_cache_dir

allocator default = mimalloc
python = pyo3
regen-parser

Features from optional dependencies

In crates that don't use the dep: syntax, optional dependencies automatically become Cargo features. These features may have been created by mistake, and this functionality may be removed in the future.

bincode not wasm32 cache

Enables bincode ^1.3

clap not wasm32 cli
crossbeam-channel not wasm32 lsp
dirs not wasm32 cache

Enables dirs ^5.0

env_logger not wasm32 cli
lsp-server not wasm32 lsp
mimalloc not wasm32 allocator
notify not wasm32 lsp

Enables notify ^6.1

pyo3 not wasm32 python?

Enables pyo3 ^0.27