-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathCargo.toml
More file actions
73 lines (67 loc) · 2.81 KB
/
Copy pathCargo.toml
File metadata and controls
73 lines (67 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[package]
name = "freemkv-autorip"
version = "1.6.0"
edition = "2024"
rust-version = "1.97"
license = "MIT"
description = "Automatic disc ripper — insert a disc, get an MKV"
repository = "https://github.com/freemkv/autorip"
exclude = ["CLAUDE.md"]
keywords = ["bluray", "uhd", "ripper", "automation", "disc"]
categories = ["hardware-support", "multimedia"]
[[bin]]
name = "autorip"
path = "src/main.rs"
[dependencies]
libfreemkv = "1.5"
freemkv-engine = "1.6"
freemkv-keysources = "1.5"
freemkv-i18n = "1.5"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
base64 = "0.22"
ureq = { version = "2", features = ["json"] }
tiny_http = "0.12"
once_cell = "1"
tracing = "0.1"
tracing-subscriber = { version = "0.3", features = ["env-filter", "json"] }
tracing-appender = "0.2"
# Same kernel-wakeup channel primitive libfreemkv uses for Pipeline.
# Replaces the producer's `std::sync::mpsc::sync_channel` + 50 ms
# poll-loop in `ripper/mux.rs` so the producer thread blocks on
# consumer drain instead of pacing at 20 frames/sec.
crossbeam-channel = "0.5"
# Global allocator. mimalloc cuts the ~22% kernel allocator complex
# (clear_page, mmap/munmap, mm_fault, memcg) that glibc's
# mmap-on-large-alloc path generates from per-frame PesFrame
# allocations during mux. `secure` enables guard pages + canaries —
# we run privileged (per autorip's docker compose) and parse
# untrusted disc payloads, so the few-percent allocator cost is worth
# the hardening.
mimalloc = { version = "0.1", features = ["secure"] }
[target.'cfg(unix)'.dependencies]
libc = "0.2"
[dev-dependencies]
tempfile = "3"
[profile.release]
lto = "thin"
codegen-units = 1
# Resolve libfreemkv + freemkv-keysources from their GIT TAGS. Both are OFF
# crates.io now (publish = false — libfreemkv git-deps the firmware crate, and
# keysources deps libfreemkv), so this [patch.crates-io] git-tag redirect is the
# ONLY resolution path; there is no crates.io publish for these crates at all.
# The GHCR image build starts the instant those tags exist.
#
# This [patch.crates-io] is committed (CI-visible) and applies to BOTH the
# direct deps above AND the transitive reference that freemkv-keysources makes
# to libfreemkv — unifying every libfreemkv ref to the single git-tag source
# (no duplicate crate, no trait-identity mismatch).
#
# The release script rewrites these tags
# to the new version before regenerating Cargo.lock. Local dev overrides this
# patch with a path patch via the gitignored .cargo/config.toml.
[patch.crates-io]
libfreemkv = { git = "https://github.com/freemkv/libfreemkv", tag = "v1.5.2" }
freemkv-engine = { git = "https://github.com/freemkv/freemkv-engine", tag = "v1.6.0" }
freemkv-keysources = { git = "https://github.com/freemkv/freemkv-keysources", tag = "v1.5.2" }
freemkv-i18n = { git = "https://github.com/freemkv/freemkv-i18n", tag = "v1.5.2" }