[package]
edition = "2024"
rust-version = "1.85"
name = "rustledger"
version = "0.7.2"
authors = ["Rustledger Contributors"]
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Drop-in replacement for Beancount. Pure Rust, 10-30x faster."
homepage = "https://rustledger.github.io"
readme = "README.md"
keywords = [
"beancount",
"accounting",
"finance",
"double-entry",
"ledger",
]
categories = [
"command-line-utilities",
"finance",
"parser-implementations",
]
license = "GPL-3.0-only"
repository = "https://github.com/rustledger/rustledger"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/rustledger-v{ version }-{ target }.tar.gz"
pkg-fmt = "tgz"
bin-dir = "{ bin }{ binary-ext }"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-url = "{ repo }/releases/download/v{ version }/rustledger-v{ version }-{ target }.zip"
pkg-fmt = "zip"
[package.metadata.binstall.overrides.aarch64-pc-windows-msvc]
pkg-url = "{ repo }/releases/download/v{ version }/rustledger-v{ version }-{ target }.zip"
pkg-fmt = "zip"
[features]
bean-compat = []
default = [
"bean-compat",
"python-plugin-wasm",
]
python-plugin-wasm = ["rustledger-plugin/wasm-runtime"]
[lib]
name = "rustledger"
path = "src/lib.rs"
bench = false
[[bin]]
name = "bean-check"
path = "src/bin/bean_check.rs"
required-features = ["bean-compat"]
[[bin]]
name = "bean-doctor"
path = "src/bin/bean_doctor.rs"
required-features = ["bean-compat"]
[[bin]]
name = "bean-extract"
path = "src/bin/bean_extract.rs"
required-features = ["bean-compat"]
[[bin]]
name = "bean-format"
path = "src/bin/bean_format.rs"
required-features = ["bean-compat"]
[[bin]]
name = "bean-price"
path = "src/bin/bean_price.rs"
required-features = ["bean-compat"]
[[bin]]
name = "bean-query"
path = "src/bin/bean_query.rs"
required-features = ["bean-compat"]
[[bin]]
name = "bean-report"
path = "src/bin/bean_report.rs"
required-features = ["bean-compat"]
[[bin]]
name = "rledger"
path = "src/bin/rledger.rs"
[[test]]
name = "cli_commands_test"
path = "tests/cli_commands_test.rs"
[[test]]
name = "fixture_tests"
path = "tests/fixture_tests.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[bench]]
name = "pipeline_bench"
path = "benches/pipeline_bench.rs"
harness = false
[dependencies.anyhow]
version = "1"
[dependencies.ariadne]
version = "0.6"
[dependencies.chrono]
version = "0.4"
features = ["serde"]
[dependencies.clap]
version = "4"
features = ["derive"]
[dependencies.clap_complete]
version = "4"
[dependencies.dirs]
version = "6"
[dependencies.rayon]
version = "1.10"
[dependencies.rust_decimal]
version = "1.40"
features = ["serde"]
[dependencies.rustledger-booking]
version = "0.7.2"
[dependencies.rustledger-core]
version = "0.7.2"
[dependencies.rustledger-importer]
version = "0.7.2"
[dependencies.rustledger-loader]
version = "0.7.2"
[dependencies.rustledger-parser]
version = "0.7.2"
[dependencies.rustledger-plugin]
version = "0.7.2"
default-features = false
[dependencies.rustledger-query]
version = "0.7.2"
[dependencies.rustledger-validate]
version = "0.7.2"
[dependencies.rustyline]
version = "17"
features = ["derive"]
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.sha2]
version = "0.10"
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = ["env-filter"]
[dependencies.ureq]
version = "3"
features = ["json"]
[dev-dependencies.criterion]
version = "0.8"
[dev-dependencies.rust_decimal_macros]
version = "1.40"
[lints.clippy]
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_precision_loss = "allow"
cast_sign_loss = "allow"
default_trait_access = "allow"
format_push_string = "allow"
manual_let_else = "allow"
match_same_arms = "allow"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
module_name_repetitions = "allow"
multiple_crate_versions = "allow"
must_use_candidate = "allow"
option_if_let_else = "allow"
or_fun_call = "allow"
ptr_arg = "allow"
ref_option = "allow"
return_self_not_must_use = "allow"
similar_names = "allow"
struct_excessive_bools = "allow"
too_many_lines = "allow"
type_complexity = "allow"
unnecessary_wraps = "allow"
unused_self = "allow"
[lints.clippy.all]
level = "warn"
priority = -1
[lints.clippy.cargo]
level = "warn"
priority = -1
[lints.clippy.nursery]
level = "warn"
priority = -1
[lints.clippy.pedantic]
level = "warn"
priority = -1
[lints.rust]
missing_docs = "warn"
unsafe_code = "deny"