[package]
edition = "2024"
rust-version = "1.88.0"
name = "bambu-rs"
version = "0.1.0"
build = "build.rs"
include = [
"/Cargo.toml",
"/Cargo.lock",
"/build.rs",
"/README.md",
"/LICENSE",
"/about.toml",
"/src",
"/web/src",
"/web/index.html",
"/web/package.json",
"/web/pnpm-lock.yaml",
"/web/pnpm-workspace.yaml",
"/web/tsconfig.json",
"/web/vite.config.ts",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "AI-agent-friendly Bambu Lab 3D printer CLI & library"
readme = "README.md"
keywords = [
"bambulab",
"3d-printing",
"mqtt",
"cli",
"printer",
]
categories = [
"command-line-utilities",
"api-bindings",
]
license = "MIT"
repository = "https://github.com/sksat/bambu-rs"
[package.metadata.binstall]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }-v{ version }.tar.gz"
bin-dir = "{ name }-{ target }-v{ version }/{ bin }{ binary-ext }"
pkg-fmt = "tgz"
[package.metadata.binstall.overrides.x86_64-pc-windows-msvc]
pkg-url = "{ repo }/releases/download/v{ version }/{ name }-{ target }-v{ version }.zip"
pkg-fmt = "zip"
[features]
cli = [
"dep:clap",
"dep:ctrlc",
]
dashboard = [
"server",
"dep:rust-embed",
]
default = [
"cli",
"server",
]
license-notice = [
"cli",
"dep:notalawyer",
"dep:notalawyer-clap",
"dep:notalawyer-build",
]
server = [
"cli",
"dep:axum",
"dep:axum-extra",
"dep:tower",
"dep:tower-http",
"dep:futures-util",
"tokio/rt-multi-thread",
"tokio/sync",
"tokio/net",
"tokio/process",
"tokio/fs",
"tokio/io-util",
"dep:ureq",
]
ts-rs = ["dep:ts-rs"]
[lib]
name = "bambu_rs"
path = "src/lib.rs"
[[bin]]
name = "bambu"
path = "src/main.rs"
required-features = ["cli"]
[dependencies.anyhow]
version = "1.0.102"
[dependencies.axum]
version = "0.8.9"
features = ["ws"]
optional = true
[dependencies.axum-extra]
version = "0.12.6"
features = ["typed-header"]
optional = true
[dependencies.clap]
version = "4.6.1"
features = [
"derive",
"env",
]
optional = true
[dependencies.ctrlc]
version = "3.5.0"
optional = true
[dependencies.futures-util]
version = "0.3.31"
optional = true
default-features = false
[dependencies.md-5]
version = "0.11.0"
[dependencies.notalawyer]
version = "0.3"
optional = true
[dependencies.notalawyer-clap]
version = "0.3"
optional = true
[dependencies.rumqttc]
version = "0.25.1"
features = ["use-rustls"]
default-features = false
[dependencies.rust-embed]
version = "8.11.0"
optional = true
[dependencies.rustls]
version = "0.23.40"
features = [
"ring",
"logging",
"tls12",
]
default-features = false
[dependencies.rustls-pki-types]
version = "1.14.1"
[dependencies.serde]
version = "1.0.228"
features = ["derive"]
[dependencies.serde_json]
version = "1.0.150"
[dependencies.suppaftp]
version = "8.0.4"
features = [
"rustls-ring",
"deprecated",
]
[dependencies.tempfile]
version = "3.27.0"
[dependencies.thiserror]
version = "2.0.18"
[dependencies.tokio]
version = "1.52.3"
features = [
"rt",
"time",
"macros",
]
default-features = false
[dependencies.toml]
version = "1.1.2"
[dependencies.tower]
version = "0.5.3"
optional = true
[dependencies.tower-http]
version = "0.6.11"
features = [
"cors",
"trace",
"compression-gzip",
]
optional = true
[dependencies.ts-rs]
version = "12"
optional = true
[dependencies.ureq]
version = "2"
optional = true
default-features = false
[dependencies.zip]
version = "7.2.0"
features = ["deflate"]
default-features = false
[dev-dependencies.assert_cmd]
version = "2.2.2"
[dev-dependencies.axum-test]
version = "20.1.0"
features = ["ws"]
[dev-dependencies.predicates]
version = "3.1.4"
[dev-dependencies.proptest]
version = "1.11.0"
[dev-dependencies.tokio]
version = "1.52.3"
features = [
"test-util",
"rt",
"macros",
]
default-features = false
[build-dependencies.notalawyer-build]
version = "0.3"
optional = true
[profile.release]
strip = true