[workspace] members = ["examples/*", "benches/*"] [workspace.package] version = "0.2.1" authors = ["Charles R Earp "] edition = "2021" rust-version = "1.70.0" documentation = "https://docs.rs/autograph" readme = "README.md" homepage = "https://github.com/charles-r-earp/autograph" repository = "https://github.com/charles-r-earp/autograph" license = "MIT OR Apache-2.0" publish = true [workspace.dependencies] autograph_derive = { path = "autograph_derive", version = "=0.2.1" } autograph = { path = ".", default-features = false } anyhow = "1.0.37" clap = "4.2.5" rayon = "1.7.0" crossbeam-channel = "0.5.8" parking_lot = "0.12.1" serde = { version = "1.0.126" } serde_json = "1.0.96" ndarray = { version = "0.15.6", default-features = false } bytemuck = "1.4.1" derive_more = { version = "0.99.11", default-features = false } num-format = "0.4.4" [package] name = "autograph" version.workspace = true authors.workspace = true edition.workspace = true rust-version.workspace = true description = "A machine learning library for Rust." documentation.workspace = true readme.workspace = true homepage.workspace = true repository.workspace = true license.workspace = true keywords = [ "neural-networks", "machine-learning", "deep-learning", "autograd", "gpu", ] categories = ["hardware-support", "science", "mathematics"] publish.workspace = true autobins = false autobenches = false [dependencies] autograph_derive = { workspace = true, optional = true } krnl = { version = "0.1.1", default-features = false } anyhow.workspace = true ndarray = { workspace = true, features = [ "serde", "rayon", "matrixmultiply-threading", ] } rand = { version = "0.8.4", optional = true } serde = { workspace = true, features = ["derive", "rc"], optional = true } derive_more = { workspace = true } thiserror = "1.0.23" approx = "0.5.0" bytemuck.workspace = true byteorder = { version = "1.4.3", optional = true } dirs = { version = "3.0.2", optional = true } flate2 = { version = "1.0.20", optional = true } half = { version = "2.1.0", features = ["num-traits", "bytemuck", "serde"] } paste = "1.0.7" dry = "0.1.1" crunchy = { version = "0.2.2" } crossbeam-channel = { workspace = true, optional = true } parking_lot = { workspace = true, optional = true } rayon.workspace = true once_cell = { version = "1.17.1", optional = true, features = ["std"] } num-traits = "0.2.15" wide = "0.7.13" unchecked-index = "0.2.2" curl = { version = "0.4.46", optional = true } indicatif = { version = "0.17.8", optional = true } [target.'cfg(target_family = "x86")'.dependencies] cache-size = "0.6.0" [dev-dependencies] approx = "0.4.0" serde_test = "1.0.160" ndarray = { workspace = true, features = ["approx"] } [target.'cfg(not(target_family = "wasm"))'.dev-dependencies] libtest-mimic = "0.6.0" tempfile = "3.10.1" [target.'cfg(target_family = "wasm")'.dev-dependencies] getrandom = { version = "0.2", features = ["js"] } wasm-bindgen-test = "0.3.33" [features] default = ["device"] device = ["krnl/device", "dep:once_cell"] serde = ["dep:serde", "krnl/serde"] dataset = [] iris = ["dataset"] mnist = [ "dataset", "dep:dirs", "dep:flate2", "dep:byteorder", "dep:indicatif", "dep:curl", ] learn = [] neural-network = [ "learn", "dep:autograph_derive", "dep:crossbeam-channel", "dep:parking_lot", "dep:rand", "dep:once_cell", ] [package.metadata.docs.rs] all-features = true rustdoc-args = ["--cfg", "doc_cfg"] [package.metadata.krnlc] features = ["neural-network"] [package.metadata.krnlc.dependencies] half = { default-features = false, features = ["num-traits"] } dry = {} paste = {} crunchy = { default-features = false, features = ["limit_64"] } [[test]] name = "integration_tests" path = "tests/integration_tests.rs" harness = false