[package] name = "furumusic" version = "0.8.3" edition = "2024" description = "Reusable web-app boilerplate: auth, OIDC/SSO, admin panel, user management, i18n, PostgreSQL" [dependencies] # default-features off: cot's defaults include the sqlite backend, whose old # libsqlite3-sys collides with music-dht's rusqlite (one native sqlite3 per # binary). This server only ever talks PostgreSQL. cot = { version = "0.6.0", default-features = false, features = ["postgres", "json", "openapi", "swagger-ui"] } schemars = { version = "0.9", features = ["derive"] } serde = { version = "1", features = ["derive"] } openidconnect = "4.0" reqwest = { version = "0.12", default-features = false, features = ["rustls-tls", "json"] } tokio = { version = "1", features = ["sync", "fs", "io-util"] } tower = "0.5" base64 = "0.22" blake3 = "1" serde_json = "1" tracing = "0.1" tracing-subscriber = { version = "0.3", features = ["env-filter"] } chrono = "0.4.44" symphonia = { version = "0.5", default-features = false, features = ["mp3","aac","flac","vorbis","wav","alac","adpcm","pcm","mpa","isomp4","ogg","aiff","mkv"] } id3 = "1" encoding_rs = "0.8" sha2 = "0.10" md-5 = "0.10" image = { version = "0.25", default-features = false, features = ["jpeg", "png", "webp", "gif", "bmp"] } sqlx = { version = "0.8", features = ["runtime-tokio-rustls", "postgres"] } anyhow = "1.0" tokio-cron-scheduler = "0.15" croner = "3" async-trait = "0.1" postcard = { version = "1", features = ["alloc"] } uuid = "1" librqbit = { version = "8.1.1", features = ["disable-upload"] } # P2P federation: publishes the library into a shared DHT and serves audio / # catalogs to furumi peers (TUI clients) over the frid stack. music-dht = { git = "https://gt.hexor.cy/ab/frid.git" }