# == Core metadata == [package] name = "babycat" version = "0.0.15" authors = ["Neocrym Records Inc. "] edition = "2018" description = "An audio decoding and manipulation library, with bindings for C, Python, and WebAssembly." readme = "README.md" homepage = "https://babycat.io" repository = "https://github.com/babycat-io/babycat" license = "MIT" include = ["Cargo.toml", "benches", "examples", "rust-toolchain.toml", "src", "tests"] # == Binary targets == [[bin]] name = "babycat" path = "src/bin/babycat/main.rs" required-features = ["frontend-binary"] # == Library targets == [lib] name = "babycat" crate-type = ["rlib", "cdylib", "staticlib"] # == Dependencies == [dependencies] symphonia = { version = "0.5.2", features = [ "aac", "alac", "flac", "mp3", "mkv", "pcm", "isomp4", "wav", "ogg", "vorbis" ] } base64 = "0.13" float-cmp= "0.9" hound = "3.4" humantime = "2.1" either = "1.6" serde = { version = "1.0", features = ["derive"] } serde_json = "1.0" log = { version = "0.4", features = ["serde"]} # for multithreading rayon = { version = "1.6.1", optional = true } # for libsamplerate samplerate = { version = "0.2.4", optional = true } # for webassembly frontend wasm-bindgen = { version = "0.2", features = ["serde-serialize"], optional = true } js-sys = { version = "0.3", optional = true } # for python frontend numpy = { version = "0.18.0", optional = true } pyo3 = { version = "0.18.1", optional = true } # for binary targets env_logger = { version = "0.9", optional = true } structopt = { version = "0.3", optional = true } rodio = { version = "0.15", default-features = false, optional = true } crossterm = { version = "0.23", optional = true } # ffmpeg ffmpeg-next = { version = "5.1.1", default-features = false, optional = true } [dev-dependencies] wasm-bindgen-test = "0.3" # == Features == [features] # Default features default = ["frontend-rust"] # Additional features to compile in enable-filesystem = [] enable-multithreading = ["rayon"] enable-libsamplerate = ["samplerate"] enable-audio-playback = ["rodio"] # Dynamically link to FFmpeg enable-ffmpeg = [ "ffmpeg-next", "ffmpeg-next/codec", "ffmpeg-next/device", "ffmpeg-next/format", ] # Statically link to FFmpeg enable-ffmpeg-static = [ "enable-ffmpeg", "ffmpeg-next/static", ] # Build FFmpeg and statically link to it enable-ffmpeg-build = [ "enable-ffmpeg", "enable-ffmpeg-static", "ffmpeg-next/build" ] # These "frontends" are common groupings of features for targets. frontend-binary = [ "enable-filesystem", "enable-multithreading", "enable-libsamplerate", "enable-audio-playback", "env_logger", "structopt", "crossterm", ] frontend-rust = [ "enable-filesystem", "enable-multithreading", "enable-libsamplerate", ] frontend-wasm = [ "wasm-bindgen", "js-sys" ] frontend-python = [ "enable-filesystem", "enable-multithreading", "enable-libsamplerate", "numpy", "pyo3", "pyo3/extension-module", "pyo3/abi3", "pyo3/abi3-py38", ] frontend-c = [ "enable-filesystem", "enable-multithreading", "enable-libsamplerate", ] # == docs.rs documentation metadata == [package.metadata.docs.rs] # When building Rust documentation to publish on docs.rs, # enable the FFmpeg features. features = ["frontend-rust"] all-features = false no-default-features = false