nandi/jolt-nativepublic Fork 0
600f207e2f91fc746a6545b141494a260e410f60
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 600f207e2f91fc746a6545b141494a260e410f60 · nandi · 19d ago
Cargo.toml · 59 lines · 2.3 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
[package]
name = "jolt-moq"
description = "freeq's AV media plane — MoQ over QUIC, Opus and H.264 — behind a C ABI"
version.workspace = true
edition.workspace = true
license.workspace = true
repository.workspace = true

[lib]
# The object jolt loads. `rlib` beside it so the crate's own tests — and any
# Rust consumer that would rather not go through C — can use it directly.
name = "joltmoq"
crate-type = ["cdylib", "rlib"]

[features]
# cpal's native PipeWire host, on by default. Without it only ALSA PCMs are
# visible ("pipewire", "sysdefault") and the real OS sources a browser would
# offer — "EMEET SmartCam C960 Mono" and friends — cannot be picked at all, so
# device selection in a call becomes guesswork.
#
# It is a feature rather than unconditional because it builds `libspa-sys`,
# which needs pkg-config and PipeWire's own headers on the build machine. The
# flake at the workspace root supplies them; `--no-default-features` is for a
# machine that has neither and only needs the crate to compile.
default = ["pipewire"]
pipewire = ["cpal/pipewire"]

[dependencies]
jolt-abi.workspace = true
log.workspace = true

iroh-live = { git = "https://github.com/n0-computer/iroh-live", rev = "edd9bcc530a615f3ab3a6919e96790a077905376", default-features = false, features = [
    "opus",
    "h264",
    "capture-camera",
] }
moq-native = { git = "https://github.com/Frando/moq", branch = "deps/iroh-main", default-features = false, features = [
    "noq",
    "websocket",
    "aws-lc-rs",
] }
moq-lite = { git = "https://github.com/Frando/moq", branch = "deps/iroh-main" }
# 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"] }
cpal = { path = "../../third-party/rust/cpal" }
# V4L2 capture: the fallback path for cameras rusty-capture mishandles.
v4l2r = "0.0.7"
# JPEG only — the V4L2 path converts MJPEG frames, and nothing here reads or
# writes a picture file, so the rest of the format set is dead weight.
image = { version = "0.25", default-features = false, features = ["jpeg"] }
# One query parameter (`inst=`) needs escaping. That is the whole use.
urlencoding = "2"
libc = "0.2"
n0-future = "0.3"
tokio = { version = "1", features = ["rt-multi-thread", "macros", "sync", "time"] }
anyhow = "1"
url = "2"
rand = "0.8"
env_logger = "0.11"