nandi/jolt-nativepublic Fork 0
8cf1b3347ef6fa83297b6866dfd47d2728d4e339
Commits
Clone
git clone https://git.rickub.com/nandi/jolt-native.git
git clone ssh://git@rickub.com/nandi/jolt-native.git

Host key fingerprint (ed25519): SHA256:iycHnxEyq0Q7uyVpB7JlznP0G7JrTPXLYRcAU5CSLhc — verify it before your first connect.

Build under buck2, with the toolchain pinned rather than found 460541b · on 8cf1b3347ef6fa83297b6866dfd47d2728d4e339 · nandi · 19d ago
Cargo.toml · 117 lines · 5.8 KBTOML Blame HistoryRaw
  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
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
# The third-party graph, as one manifest for reindeer to vendor and generate
# BUCK targets from. Every external crate the workspace's four members depend
# on appears here once, with the union of the features they ask for; first-party
# crates keep their own BUCK files and depend on `//third-party/rust:<name>`.
#
# Android-only dependencies (jni, winit's android-native-activity) are absent:
# both objects this repo ships are desktop, and the APK takes its libvidya from
# vidya's own buck2 build.
[package]
name = "jolt-native-third-party"
version = "0.0.0"
edition = "2021"
publish = false

# Its own workspace: reindeer resolves this graph on its own, and the root
# workspace must not try to make it a member.
[workspace]

# Nothing is compiled from here; the manifest exists to pin a graph.
[lib]
path = "lib.rs"

[dependencies]
anyhow = "1"
# cpal's cross-platform sample trait; see the note above the patch table.
dasp_sample = "0.11"
# `image-data` is the clipboard path for a pasted picture; egui does not deliver
# one. Desktop only — arboard has no Android backend.
arboard = { version = "3", default-features = false, features = ["image-data"] }
# Without cpal's `pipewire` feature, which is on by default under cargo: it
# builds libspa-sys, which wants pkg-config and PipeWire's headers on the build
# machine — the one system dependency the zig toolchain cannot stand in for.
# The buck2 build is therefore `--no-default-features` shaped for now: ALSA PCM
# names only, everything else equal.
cpal = { path = "cpal" }
# `default_fonts` because a shared library has no host app to install a font set
# for it. vidya-core turns egui's defaults off; the union is what gets built.
egui = { version = "0.31", features = ["default_fonts"] }
egui-winit = "0.31"
egui_glow = "0.31"
env_logger = "0.11"
glow = "0.16"
glutin = "0.32"
glutin-winit = "0.5"
# JPEG only — the V4L2 path converts MJPEG frames, and nothing here reads or
# writes a picture file.
image = { version = "0.25", default-features = false, features = ["jpeg"] }
iroh-live = { git = "https://github.com/n0-computer/iroh-live", rev = "edd9bcc530a615f3ab3a6919e96790a077905376", default-features = false, features = [
    "opus",
    "h264",
    "capture-camera",
] }
libc = "0.2"
log = "0.4"
moq-lite = { git = "https://github.com/Frando/moq", branch = "deps/iroh-main" }
moq-native = { git = "https://github.com/Frando/moq", branch = "deps/iroh-main", default-features = false, features = [
    "noq",
    "websocket",
    "aws-lc-rs",
] }
mp4 = "0.14"
n0-future = "0.3"
# C++, which is why the toolchain needs both halves of zig.
openh264 = { version = "0.9", default-features = false, features = ["source"] }
png = "0.17"
rand = "0.8"
# aws-lc-rs rather than ring, to match what moq-native and iroh already pull in.
rustls = { version = "0.23", default-features = false, features = ["aws-lc-rs"] }
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time"] }
# One query parameter (`inst=`) needs escaping. That is the whole use.
urlencoding = "2"
url = "2"
# V4L2 capture: the fallback path for cameras rusty-capture mishandles.
v4l2r = "0.0.7"
winit = "0.30"
zip = { version = "2", default-features = false, features = ["deflate"] }

# Carried over from the workspace root verbatim: iroh-live wants an unreleased
# iroh 0.97, and the revs are the ones freeq locks. They travel together and are
# not independently bumpable.
# cpal's own dependencies, named here so reindeer gives them public aliases:
# the hand-written target in cpal/BUCK lives in a different package, and
# reindeer only makes top-level deps visible outside its own.
[target.'cfg(any(target_os = "linux", target_os = "dragonfly", target_os = "freebsd", target_os = "netbsd"))'.dependencies]
alsa = "0.11"

[target.'cfg(target_vendor = "apple")'.dependencies]
coreaudio-rs = { version = "0.14", default-features = false, features = ["core_audio", "audio_toolbox"] }
mach2 = "0.5"
objc2 = "0.6"
objc2-audio-toolbox = { version = "0.3", default-features = false, features = ["std", "AUComponent", "AudioUnitProperties"] }
objc2-core-audio = { version = "0.3", default-features = false, features = ["std", "AudioHardware", "AudioHardwareDeprecated", "objc2", "objc2-foundation"] }
objc2-core-audio-types = { version = "0.3", default-features = false, features = ["std", "CoreAudioBaseTypes"] }
objc2-core-foundation = "0.3"
objc2-foundation = "0.3"

[patch.crates-io]
iroh = { git = "https://github.com/n0-computer/iroh", rev = "8af8370b" }
iroh-base = { git = "https://github.com/n0-computer/iroh", rev = "8af8370b" }
iroh-relay = { git = "https://github.com/n0-computer/iroh", rev = "8af8370b" }
iroh-gossip = { git = "https://github.com/n0-computer/iroh-gossip", rev = "1038f721" }
noq = { git = "https://github.com/n0-computer/noq", rev = "ab042ea7e3f7bae1e43eaba2ac9dba47ddb52e69" }
noq-proto = { git = "https://github.com/n0-computer/noq", rev = "ab042ea7e3f7bae1e43eaba2ac9dba47ddb52e69" }
noq-udp = { git = "https://github.com/n0-computer/noq", rev = "ab042ea7e3f7bae1e43eaba2ac9dba47ddb52e69" }
web-transport-iroh = { git = "https://github.com/Frando/web-transport", rev = "f7a523f1" }
web-transport-noq = { git = "https://github.com/Frando/web-transport", rev = "f7a523f1" }
web-transport-proto = { git = "https://github.com/Frando/web-transport", rev = "f7a523f1" }
web-transport-trait = { git = "https://github.com/Frando/web-transport", rev = "f7a523f1" }

# moq-media (inside iroh-live) asks for cpal on `branch = "master"`, which
# floats, and master no longer compiles against the iroh-live rev pinned above.
# The vendored copy is the last commit that does — 63ea9ff upstream, per its
# .cargo_vcs_info.json. It has to be a path rather than that rev: cargo
# canonicalises the URL, so naming the same repo without `.git` is still "the
# same source", which a patch may not retarget.
[patch."https://github.com/RustAudio/cpal.git"]
cpal = { path = "cpal" }