[workspace]
members = [
".",
"crates/aprender-core",
"crates/aprender-shell",
"crates/aprender-tsp",
"crates/aprender-monte-carlo",
"crates/apr-cli",
"crates/aprender-bench-tokenizer",
"crates/aprender-bench-compute",
"crates/aprender-compute",
"crates/aprender-gpu",
"crates/aprender-explain",
"crates/aprender-cuda-edge",
"crates/aprender-ptx-debug",
"crates/aprender-cupti",
"crates/aprender-cbtop",
"crates/aprender-cgp",
"crates/aprender-quant",
"crates/aprender-sparse",
"crates/aprender-fft",
"crates/aprender-solve",
"crates/aprender-rand",
"crates/aprender-image",
"crates/aprender-tensor",
"crates/aprender-gemm-codegen",
"crates/aprender-compute-xtask",
"crates/aprender-contracts",
"crates/aprender-contracts-macros",
"crates/aprender-contracts-cli",
"crates/aprender-serve",
"crates/aprender-train",
"crates/aprender-train-common",
"crates/aprender-train-lora",
"crates/aprender-train-distill",
"crates/aprender-train-inspect",
"crates/aprender-train-shell",
"crates/aprender-train-bench",
"crates/aprender-train-wasm",
"crates/aprender-orchestrate",
"crates/aprender-profile",
"crates/aprender-profile-core",
"crates/aprender-verify",
"crates/aprender-verify-ml",
"crates/aprender-data",
"crates/aprender-simulate",
"crates/aprender-distribute",
"crates/aprender-registry",
"crates/aprender-db",
"crates/aprender-graph",
"crates/aprender-rag",
"crates/aprender-viz",
"crates/aprender-zram",
"crates/aprender-zram-core",
"crates/aprender-zram-adaptive",
"crates/aprender-zram-cli",
"crates/aprender-zram-generator",
"crates/aprender-present-core",
"crates/aprender-present-terminal",
"crates/aprender-present-widgets",
"crates/aprender-present-layout",
"crates/aprender-present-yaml",
"crates/aprender-present-cli",
"crates/aprender-present-lib",
"crates/aprender-present-test",
"crates/aprender-present-test-macros",
"crates/aprender-common",
"crates/aprender-test-lib",
"crates/aprender-test-cli",
"crates/aprender-test-derive",
"crates/aprender-test-js-gen",
"crates/aprender-test-showcase",
]
exclude = [
"fuzz",
"crates/aprender-viz-ttop",
"crates/aprender-present",
"crates/aprender-test",
"crates/aprender-train-canary",
]
resolver = "2"
[workspace.package]
version = "0.29.3"
edition = "2021"
license = "MIT"
repository = "https://github.com/paiml/aprender"
authors = ["Noah Gift <noah@paiml.com>"]
rust-version = "1.89"
keywords = ["machine-learning", "inference", "training", "gpu", "simd"]
categories = ["science", "algorithms"]
homepage = "https://github.com/paiml/aprender"
[workspace.dependencies]
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
bincode = "1.3"
rmp-serde = "1.3"
toml = "0.8"
thiserror = "2.0"
anyhow = "1.0"
tokio = { version = "1", features = ["full"] }
axum = { version = "0.8", features = ["ws"] }
tower = "0.5"
reqwest = { version = "0.12", default-features = false }
ureq = { version = "2.12", features = ["json"] }
rand = { version = "0.9", features = ["small_rng"] }
rand_chacha = "0.9"
proptest = "1.6"
criterion = { version = "0.7", features = ["html_reports"] }
tempfile = "3.14"
half = { version = "2.4", default-features = false, features = ["std"] }
bytemuck = { version = "1.24", features = ["derive"] }
safetensors = "0.4"
rayon = "1.10"
chrono = "0.4"
dirs = "6.0"
uuid = { version = "1", features = ["v4"] }
regex = "1.11"
clap = { version = "4.5", features = ["derive"] }
lz4_flex = "0.11"
zstd = "0.13"
sha2 = "0.10"
minijinja = { version = "2.14", features = ["loader", "serde"] }
provable-contracts = "0.3"
provable-contracts-macros = "0.3"
aprender-contracts-macros = { path = "crates/aprender-contracts-macros", version = "0.29.3" }
serde_yaml = "0.9"
hf-hub = { version = "0.4", default-features = false, features = ["ureq"] }
aprender-compute = { path = "crates/aprender-compute", version = "0.29.3" }
aprender-gpu = { path = "crates/aprender-gpu", version = "0.29.3" }
aprender-quant = { path = "crates/aprender-quant", version = "0.29.3" }
aprender-serve = { path = "crates/aprender-serve", version = "0.29.3" }
aprender-train = { path = "crates/aprender-train", version = "0.29.3" }
aprender-train-common = { path = "crates/aprender-train-common", version = "0.29.3" }
aprender-orchestrate = { path = "crates/aprender-orchestrate", version = "0.29.3" }
aprender-contracts = { path = "crates/aprender-contracts", version = "0.29.3" }
aprender-profile = { path = "crates/aprender-profile", version = "0.29.3" }
aprender-profile-core = { path = "crates/aprender-profile-core", version = "0.29.3" }
aprender-zram-core = { path = "crates/aprender-zram-core", version = "0.29.3" }
aprender-zram-adaptive = { path = "crates/aprender-zram-adaptive", version = "0.29.3" }
aprender-present-core = { path = "crates/aprender-present-core", version = "0.29.3" }
aprender-present-terminal = { path = "crates/aprender-present-terminal", version = "0.29.3" }
aprender-present-widgets = { path = "crates/aprender-present-widgets", version = "0.29.3" }
aprender-present-layout = { path = "crates/aprender-present-layout", version = "0.29.3" }
aprender-present-yaml = { path = "crates/aprender-present-yaml", version = "0.29.3" }
aprender-present-test = { path = "crates/aprender-present-test", version = "0.29.3" }
aprender-db = { path = "crates/aprender-db", version = "0.29.3" }
aprender-graph = { path = "crates/aprender-graph", version = "0.29.3" }
aprender-rag = { path = "crates/aprender-rag", version = "0.29.3" }
aprender-data = { path = "crates/aprender-data", version = "0.29.3" }
serde_yaml_ng = "0.10"
crossterm = "0.28"
sysinfo = "0.32"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
image = "0.25"
base64 = "0.22"
syn = { version = "2", features = ["full", "visit"] }
quote = "1"
proc-macro2 = "1"
async-trait = "0.1"
notify = "7"
futures = "0.3"
tokio-tungstenite = "0.24"
indicatif = "0.17"
console = "0.15"
wgpu = "27.0"
wasm-bindgen = "0.2"
wasm-bindgen-futures = "0.4"
js-sys = "0.3"
web-sys = "0.3"
console_error_panic_hook = "0.1"
getrandom = "0.2"
wasm-bindgen-test = "0.3"
gif = "0.13"
png = "0.17"
mp4 = "0.14"
ratatui = "0.29"
tower-http = { version = "0.6", features = ["fs", "cors", "compression-gzip", "set-header"] }
mime_guess = "2"
chromiumoxide = { version = "0.8", default-features = false, features = ["tokio-runtime"] }
wasmtime = "27"
bollard = "0.17"
trueno-zram-core = { path = "crates/aprender-zram-core", version = "0.29.3", package = "aprender-zram-core" }
trueno-zram-adaptive = { path = "crates/aprender-zram-adaptive", version = "0.29.3", package = "aprender-zram-adaptive" }
trueno = { path = "crates/aprender-compute", version = "0.29.3", package = "aprender-compute" }
presentar-core = { path = "crates/aprender-present-core", version = "0.29.3", package = "aprender-present-core" }
presentar-terminal = { path = "crates/aprender-present-terminal", version = "0.29.3", package = "aprender-present-terminal" }
presentar-widgets = { path = "crates/aprender-present-widgets", version = "0.29.3", package = "aprender-present-widgets" }
presentar-layout = { path = "crates/aprender-present-layout", version = "0.29.3", package = "aprender-present-layout" }
presentar-yaml = { path = "crates/aprender-present-yaml", version = "0.29.3", package = "aprender-present-yaml" }
presentar-test = { path = "crates/aprender-present-test", version = "0.29.3", package = "aprender-present-test" }
presentar-test-macros = { path = "crates/aprender-present-test-macros", version = "0.29.3", package = "aprender-present-test-macros" }
jugar-probar-derive = { path = "crates/aprender-test-derive", version = "0.29.3", package = "aprender-test-derive" }
batuta-common = { path = "crates/aprender-common", version = "0.29.3", package = "aprender-common" }
[workspace.lints.rust]
unsafe_code = "deny"
unexpected_cfgs = { level = "warn", check-cfg = ['cfg(kani)', 'cfg(coverage_nightly)', 'cfg(feature, values("explainable-monitor-integration"))'] }
unsafe_op_in_unsafe_fn = "warn"
unreachable_pub = "warn"
missing_debug_implementations = "warn"
missing_docs = "allow"
rust_2018_idioms = { level = "warn", priority = -1 }
trivial_casts = "warn"
trivial_numeric_casts = "warn"
unused_import_braces = "warn"
unused_lifetimes = "warn"
unused_qualifications = "allow"
[workspace.lints.clippy]
all = { level = "warn", priority = -1 }
pedantic = { level = "warn", priority = -1 }
checked_conversions = "warn"
missing_errors_doc = "allow"
missing_panics_doc = "allow"
inefficient_to_string = "allow"
explicit_iter_loop = "warn"
manual_ok_or = "warn"
explicit_deref_methods = "warn"
implicit_clone = "warn"
inconsistent_struct_constructor = "warn"
redundant_closure_for_method_calls = "allow"
unnested_or_patterns = "warn"
used_underscore_binding = "warn"
many_single_char_names = "allow"
cast_precision_loss = "allow"
cast_possible_truncation = "allow"
cast_possible_wrap = "allow"
cast_sign_loss = "allow"
similar_names = "allow"
doc_markdown = "allow"
missing_const_for_fn = "allow"
module_name_repetitions = "allow"
must_use_candidate = "allow"
return_self_not_must_use = "allow"
float_cmp = "allow"
unreadable_literal = "allow"
items_after_statements = "allow"
large_stack_arrays = "allow"
too_many_arguments = "allow"
too_many_lines = "allow"
needless_range_loop = "allow"
assigning_clones = "allow"
missing_fields_in_debug = "allow"
derivable_impls = "allow"
uninlined_format_args = "allow"
type_complexity = "allow"
cloned_instead_of_copied = "allow"
unused_self = "allow"
useless_vec = "allow"
manual_div_ceil = "allow"
manual_midpoint = "allow"
map_unwrap_or = "allow"
manual_range_contains = "allow"
empty_line_after_doc_comments = "allow"
empty_line_after_outer_attr = "allow"
approx_constant = "allow"
match_wildcard_for_single_variants = "allow"
single_char_pattern = "allow"
field_reassign_with_default = "allow"
assertions_on_constants = "allow"
identity_op = "allow"
unnecessary_literal_unwrap = "allow"
default_trait_access = "allow"
len_zero = "allow"
cast_lossless = "allow"
cloned_ref_to_slice_refs = "allow"
clone_on_copy = "allow"
default_constructed_unit_structs = "allow"
erasing_op = "allow"
excessive_precision = "allow"
format_push_string = "allow"
if_not_else = "allow"
manual_contains = "allow"
match_same_arms = "allow"
needless_borrows_for_generic_args = "allow"
needless_raw_string_hashes = "allow"
no_effect_underscore_binding = "allow"
overly_complex_bool_expr = "allow"
stable_sort_primitive = "allow"
unnecessary_literal_bound = "allow"
unnecessary_map_or = "allow"
vec_init_then_push = "allow"
nonminimal_bool = "allow"
trivially_copy_pass_by_ref = "allow"
bool_to_int_with_if = "allow"
manual_let_else = "allow"
needless_pass_by_value = "allow"
ptr_arg = "allow"
single_match_else = "allow"
const_is_empty = "allow"
unnecessary_wraps = "allow"
ignore_without_reason = "allow"
index_refutable_slice = "allow"
redundant_guards = "allow"
print_literal = "allow"
unnecessary_debug_formatting = "allow"
iter_cloned_collect = "allow"
semicolon_if_nothing_returned = "allow"
[package]
name = "aprender"
version = "0.29.3"
edition = "2021"
rust-version = "1.89"
authors = ["Noah Gift <noah@paiml.com>"]
license = "MIT"
description = "Next-generation ML framework in pure Rust — `cargo install aprender` for the `apr` CLI"
repository = "https://github.com/paiml/aprender"
homepage = "https://github.com/paiml/aprender"
documentation = "https://docs.rs/aprender"
keywords = ["machine-learning", "inference", "cli", "gpu", "simd"]
categories = ["command-line-utilities", "science"]
include = [
"src/", "Cargo.toml", "README.md", "LICENSE",
"crates/apr-cli/src/", "crates/apr-cli/Cargo.toml",
"crates/aprender-core/src/", "crates/aprender-core/Cargo.toml",
"crates/aprender-core/build.rs", "crates/aprender-core/build_*.rs",
"crates/aprender-core/contracts/",
"crates/aprender-core/README.md",
]
[[bin]]
name = "apr"
path = "src/bin/apr.rs"
[dependencies]
apr-cli = { path = "crates/apr-cli", version = "0.29.3", default-features = true }
aprender_ml = { path = "crates/aprender-core", version = ">=0.29", package = "aprender-core" }
[lib]
name = "aprender"
path = "src/lib.rs"