[package]
edition = "2024"
rust-version = "1.85"
name = "scribble"
version = "0.5.4"
authors = ["Josh Montoya <josh@montoya.io>"]
build = false
include = [
"src/**",
"tests/**",
"README.md",
"CHANGELOG.md",
"AGENTS.md",
"STYLEGUIDE.md",
"SECURITY.md",
"CONTRIBUTING.md",
"CODE_OF_CONDUCT.md",
"LICENSE",
"banner.png",
"footer.png",
"demo/**",
]
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "High-level Rust API for audio transcription using Whisper"
documentation = "https://docs.rs/scribble"
readme = "README.md"
keywords = [
"whisper",
"transcription",
"speech-to-text",
]
categories = ["multimedia::audio"]
license = "MIT"
repository = "https://github.com/itsmontoya/scribble"
[package.metadata.docs.rs]
features = [
"bin-scribble-cli",
"bin-model-downloader",
"bin-scribble-server",
]
[features]
bin-model-downloader = [
"cli",
"dep:indicatif",
"dep:reqwest",
]
bin-scribble-cli = [
"cli",
"logging",
]
bin-scribble-server = [
"cli",
"logging",
"dep:axum",
"dep:futures-util",
"dep:prometheus",
"dep:tokio",
"dep:tokio-util",
"dep:tower-http",
]
cli = ["dep:clap"]
coreml = ["whisper-rs/coreml"]
cuda = ["whisper-rs/cuda"]
default = []
hipblas = ["whisper-rs/hipblas"]
logging = ["dep:tracing-subscriber"]
metal = ["whisper-rs/metal"]
vulkan = ["whisper-rs/vulkan"]
[lib]
name = "scribble"
path = "src/lib.rs"
[[bin]]
name = "model-downloader"
path = "src/bin/model-downloader.rs"
required-features = ["bin-model-downloader"]
[[bin]]
name = "scribble-cli"
path = "src/bin/scribble-cli.rs"
required-features = ["bin-scribble-cli"]
[[bin]]
name = "scribble-server"
path = "src/bin/scribble-server/main.rs"
required-features = ["bin-scribble-server"]
[[test]]
name = "scribble"
path = "tests/scribble.rs"
[dependencies.anyhow]
version = "1"
[dependencies.audioadapter]
version = "2"
[dependencies.audioadapter-buffers]
version = "2"
[dependencies.axum]
version = "0.8.7"
features = ["multipart"]
optional = true
[dependencies.clap]
version = "4.5"
features = ["derive"]
optional = true
[dependencies.futures-util]
version = "0.3"
optional = true
[dependencies.hound]
version = "3"
[dependencies.indicatif]
version = "0.18"
optional = true
[dependencies.num_cpus]
version = "1"
[dependencies.prometheus]
version = "0.14"
optional = true
[dependencies.reqwest]
version = "0.13.1"
features = [
"blocking",
"rustls",
]
optional = true
default-features = false
[dependencies.rubato]
version = "1.0.1"
[dependencies.serde]
version = "1"
features = ["derive"]
[dependencies.serde_json]
version = "1"
[dependencies.symphonia]
version = "0.5"
features = ["all"]
[dependencies.tempfile]
version = "3"
[dependencies.thiserror]
version = "2"
[dependencies.tokio]
version = "1"
features = [
"rt-multi-thread",
"macros",
"io-util",
"net",
"sync",
"signal",
]
optional = true
[dependencies.tokio-util]
version = "0.7"
features = [
"io",
"io-util",
]
optional = true
[dependencies.tower-http]
version = "0.6"
features = [
"trace",
"timeout",
]
optional = true
[dependencies.tracing]
version = "0.1"
[dependencies.tracing-subscriber]
version = "0.3"
features = [
"env-filter",
"json",
]
optional = true
[dependencies.uuid]
version = "1"
features = ["v4"]
[dependencies.whisper-rs]
version = "0.15"
[profile.release]
lto = true
codegen-units = 1
[profile.release-quick]
lto = false
codegen-units = 16
inherits = "release"