mirror of
https://github.com/hanzoai/minutes.git
synced 2026-10-30 18:27:58 +00:00
A fork of meetily (MIT, Zackriya Solutions) rebranded to Hanzo. The Python/FastAPI tier, its Docker files, its whisper-server scripts and the whisper.cpp submodule are deleted rather than rebranded. Upstream's own CLAUDE.md says that tier is archived and unsupported and tells you not to add endpoints to it; the shipping product is one Tauri binary that transcribes in-process with whisper-rs and Parakeet. Rebranding a corpse would have doubled the surface and taught the next reader that a dead service is a live one. Going with it: the vestigial localhost:5167 gate the sidebar checked before reading its own database. .github/workflows goes too. This repo lives on git.hanzo.ai, which reads .hanzo/workflows, and we do not use GitHub-hosted runners — six workflow files that cannot run read like CI that passes. Nothing replaces them yet, because a pipeline that has never run is worse than an honest absence. Summaries are written by api.hanzo.ai, our own stack, and it is the default. The other providers still compile and should go in a follow-up. The upstream MIT notice stays and the Hanzo copyright joins it. About and the README say plainly what this is a fork of. Left alone deliberately, and each is a decision someone must still make: the minisign updater key is upstream's and we cannot re-sign, so the updater points at a release path that does not exist yet; the ffmpeg binaries still come from upstream's GitHub; the Parakeet models still come from upstream's host. Co-authored-by: Hanzo Dev <[email protected]>
213 lines
7.0 KiB
TOML
213 lines
7.0 KiB
TOML
[package]
|
|
name = "minutes"
|
|
version = "0.4.0"
|
|
description = "A Tauri App for meeting minutes"
|
|
authors = ["Hanzo AI"]
|
|
license = "MIT"
|
|
repository = "https://git.hanzo.ai/hanzoai/minutes"
|
|
edition = "2021"
|
|
rust-version = "1.77"
|
|
|
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
|
|
|
[lib]
|
|
name = "app_lib"
|
|
crate-type = ["staticlib", "cdylib", "rlib"]
|
|
|
|
|
|
# Hardware acceleration features for whisper-rs
|
|
# Cross-platform GPU acceleration with smart defaults
|
|
#
|
|
# BUILD INSTRUCTIONS:
|
|
# ===================
|
|
# macOS: cargo build --release (Metal GPU auto-enabledon)
|
|
#
|
|
# Windows: cargo build --release (CPU with OpenBLAS)
|
|
# cargo build --release --features cuda (NVIDIA GPU)
|
|
# cargo build --release --features vulkan (AMD/Intel GPU)
|
|
#
|
|
# Linux: cargo build --release (CPU with OpenBLAS)
|
|
# cargo build --release --features cuda (NVIDIA GPU)
|
|
# cargo build --release --features hipblas (AMD GPU with ROCm)
|
|
# cargo build --release --features vulkan (Other GPUs)
|
|
#
|
|
# QUICK START: Use the helper scripts!
|
|
# ./build-gpu.sh (Unix/macOS)
|
|
# .\build-gpu.ps1 (Windows PowerShell)
|
|
#
|
|
[features]
|
|
default = ["platform-default"] # Automatically enables best backend per platform
|
|
|
|
# Platform-appropriate defaults - see target-specific dependencies below
|
|
platform-default = []
|
|
|
|
# Manual GPU acceleration options (for power users to override defaults)
|
|
metal = ["whisper-rs/metal"] # macOS: Apple Metal GPU (Auto-enabled on macOS)
|
|
coreml = ["whisper-rs/coreml"] # macOS: Apple CoreML acceleration
|
|
cuda = ["whisper-rs/cuda"] # Windows/Linux: NVIDIA CUDA GPU
|
|
vulkan = ["whisper-rs/vulkan"] # Windows/Linux: AMD/Intel Vulkan GPU
|
|
hipblas = ["whisper-rs/hipblas"] # Linux: AMD ROCm HIP
|
|
|
|
# CPU optimizations (fallback for systems without GPU)
|
|
openblas = ["whisper-rs/openblas"] # Optimized BLAS (Auto-enabled on Windows/Linux)
|
|
openmp = ["whisper-rs/openmp"] # OpenMP parallel processing
|
|
|
|
[build-dependencies]
|
|
tauri-build = { version = "2.3.0", features = [] }
|
|
reqwest = { version = "0.11", features = ["blocking", "multipart", "json", "stream"] }
|
|
which = "6.0.1"
|
|
zip = "2.2" # ZIP extraction (Windows, macOS)
|
|
tar = "0.4" # TAR extraction (Linux)
|
|
xz2 = "0.1" # XZ decompression (Linux)
|
|
|
|
|
|
[dependencies]
|
|
serde_json = "1.0"
|
|
serde = { version = "1.0", features = ["derive"] }
|
|
anyhow = "1.0"
|
|
once_cell = "1.17.1"
|
|
uuid = { version = "1.0", features = ["v4", "serde"] }
|
|
posthog-rs = "0.3.7"
|
|
|
|
# Cross-platform audio capture
|
|
cpal = "0.15.3"
|
|
|
|
# Wav encoding - now using manual WAV creation instead of hound
|
|
# hound = "3.5"
|
|
|
|
# Cli ! shouldn't be required if using as lib
|
|
clap = { version = "4.3", features = ["derive"] }
|
|
|
|
# Dates
|
|
chrono = { version = "0.4.31", features = ["serde"] }
|
|
|
|
# Log
|
|
log = "0.4"
|
|
env_logger = "0.11"
|
|
tracing = "0.1.40"
|
|
which = "6.0.1"
|
|
|
|
# Bytes
|
|
bytemuck = "1.16.1"
|
|
|
|
# EBU R128 loudness normalization (professional broadcast standard)
|
|
ebur128 = "0.1"
|
|
|
|
# Noise suppression - RNNoise-based neural network noise reduction
|
|
nnnoiseless = "0.5"
|
|
|
|
# Speech recognition and async utilities
|
|
# NOTE: whisper-rs is declared in platform-specific sections below (macOS/Windows/Linux)
|
|
# to ensure correct GPU features are enabled per platform
|
|
futures-util = "0.3"
|
|
silero_rs = { git = "https://github.com/emotechlab/silero-rs", rev = "26a6460", package = "silero" }
|
|
|
|
# Parakeet (ONNX-based fast transcription) dependencies
|
|
ort = { version = "2.0.0-rc.10" } # ONNX Runtime for Parakeet models
|
|
thiserror = "2.0.16" # Error handling for Parakeet
|
|
|
|
# Async
|
|
tokio = { version = "1.32.0", features = ["full", "tracing"] }
|
|
tokio-util = "0.7" # Utilities for tokio including CancellationToken
|
|
async-trait = "0.1" # Trait abstraction for async methods
|
|
|
|
reqwest = { version = "0.11", features = ["blocking", "multipart", "json", "stream"] }
|
|
|
|
# crossbeam
|
|
crossbeam = "0.8.4"
|
|
dashmap = "6.1.0"
|
|
|
|
# Directories
|
|
dirs = "5.0.1"
|
|
|
|
# Additional dependencies for notification system
|
|
url = "2.5.0"
|
|
|
|
|
|
# System monitoring for resource management
|
|
sysinfo = "0.32"
|
|
|
|
lazy_static = { version = "1.4.0" }
|
|
realfft = "3.4.0"
|
|
regex = "1.11.0"
|
|
ndarray = "0.16"
|
|
bytes = { version = "1.9.0", features = ["serde"] }
|
|
|
|
esaxx-rs = "0.1.10"
|
|
symphonia = { version = "0.5.4", features = ["aac", "isomp4", "mp3", "flac", "ogg", "vorbis", "pcm", "wav", "opt-simd"] }
|
|
rand = "0.8.5"
|
|
rayon = "1.10"
|
|
rubato = "0.15.0"
|
|
ringbuf = "0.4.8"
|
|
tempfile = "3.3.0"
|
|
whatlang = "0.16.4"
|
|
|
|
ffmpeg-sidecar = { git = "https://github.com/nathanbabcock/ffmpeg-sidecar", branch = "main" }
|
|
|
|
sqlx = { version = "0.8", features = [ "runtime-tokio", "sqlite", "chrono"] }
|
|
|
|
# Common Tauri configuration
|
|
tauri = { version = "2.6.2", features = [ "macos-private-api", "protocol-asset", "tray-icon"] }
|
|
tauri-plugin-fs = "2.4.0"
|
|
tauri-plugin-dialog = "2.3.0"
|
|
tauri-plugin-store = "2.4.0"
|
|
tauri-plugin-notification = "2.3.1"
|
|
tauri-plugin-updater = "2.3.0"
|
|
tauri-plugin-process = "2.3.0"
|
|
|
|
# Desktop-only single instance guard
|
|
[target.'cfg(any(target_os = "macos", windows, target_os = "linux"))'.dependencies]
|
|
tauri-plugin-single-instance = "=2.3.7"
|
|
|
|
# macOS-specific dependencies with Metal GPU acceleration
|
|
[target.'cfg(target_os = "macos")'.dependencies]
|
|
tauri = { version = "2.6.2", features = ["protocol-asset", "macos-private-api", "tray-icon"] }
|
|
once_cell = "1.17.1"
|
|
objc = "0.2.7"
|
|
tauri-plugin-log = { version = "2.6.0", features = ["colored"] }
|
|
anyhow = "1.0"
|
|
time = { version = "0.3", features = ["formatting"] }
|
|
reqwest = { version = "0.11", features = ["multipart", "json"] }
|
|
core-graphics = "0.23"
|
|
cidre = { git = "https://github.com/yury/cidre", rev = "a9587fa", features = ["av"] }
|
|
dasp = "0.11.0"
|
|
futures-channel = "0.3.31"
|
|
|
|
# PERFORMANCE: Enable Metal GPU + CoreML acceleration automatically on macOS
|
|
# CoreML provides additional acceleration for Apple Silicon chips
|
|
whisper-rs = { version = "0.13.2", features = ["raw-api", "metal", "coreml"] }
|
|
|
|
# Windows-specific dependencies
|
|
# Default: CPU-only build (no BLAS)
|
|
# Users can enable features manually:
|
|
# --features cuda (NVIDIA GPUs)
|
|
# --features vulkan (AMD/Intel GPUs)
|
|
# --features openblas (OpenBLAS optimization, requires BLAS_INCLUDE_DIRS)
|
|
[target.'cfg(target_os = "windows")'.dependencies]
|
|
whisper-rs = { version = "0.13.2", features = ["raw-api"] }
|
|
futures-channel = "0.3.31"
|
|
|
|
# Linux-specific dependencies
|
|
# Default: CPU-only build (no BLAS)
|
|
# Users can enable features manually:
|
|
# --features cuda (NVIDIA GPUs)
|
|
# --features vulkan (AMD/Intel GPUs)
|
|
# --features hipblas (AMD ROCm)
|
|
# --features openblas (OpenBLAS optimization, requires BLAS_INCLUDE_DIRS)
|
|
[target.'cfg(target_os = "linux")'.dependencies]
|
|
whisper-rs = { version = "0.13.2", features = ["raw-api"] }
|
|
futures-channel = "0.3.31"
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3.3.0"
|
|
infer = "0.15"
|
|
criterion = { version = "0.5.1", features = ["async_tokio"] }
|
|
memory-stats = "1.0"
|
|
strsim = "0.10.0"
|
|
futures = "0.3.31"
|
|
tracing-subscriber = "0.3.16"
|
|
|
|
[patch.crates-io]
|
|
cpal = { git = "https://github.com/RustAudio/cpal", rev = "51c3b43" }
|
|
esaxx-rs = { git = "https://github.com/thewh1teagle/esaxx-rs.git", branch = "feat/dynamic-msvc-link" }
|