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
118
119
120
121
122
123
124
125
126
127
[]
= "filament-cli"
= "0.6.3"
= "2024"
= "P2P file transfer between terminals and browsers, no upload, no account. The terminal end of filament.autumated.com."
= "MIT"
= "https://github.com/Abdk4Moura/filament"
= "https://filament.autumated.com"
= "README.md"
= ["p2p", "file-transfer", "webrtc", "cli", "airdrop"]
= ["command-line-utilities", "network-programming"]
[[]]
= "filament"
= "src/main.rs"
[]
# Fully static builds (musl): compile OpenSSL from source instead of linking
# the system one. rust_socketio hard-depends on native-tls, so a rustls-only
# tree is not possible without forking it upstream (ledger C16).
= ["dep:openssl-sys"]
# Env-gated fault/injection hooks used ONLY by the resilience gates
# (runner/sim/*). NOT in `default` and NOT pulled by the release profile, so a
# default `cargo build --release` (what users install) strips every test hook
# from the binary — no `FILAMENT_TEST_*` env reads, no corruption/freeze/drop
# injection logic. Build the gates' binary with `--features test-hooks`.
= []
# Dev-debug logging (TRACE / STALL / worker-ports internals). Stripped from
# default release builds so no debug strings reach the shipped binary.
= []
# Opt-in cross-platform mount adapters. Linux FUSE remains default-on and does
# not require a feature. macOS needs macFUSE SDK; Windows needs WinFsp SDK.
# These are OFF by default so stock CI runners (which lack the SDKs) stay green.
= ["dep:winfsp", "dep:winfsp-sys"]
[]
= { = "0.9", = ["vendored"], = true }
= "1.0.102"
= "0.1.89"
= "0.22"
= "1.11.1"
= "0.4"
= { = "4.6.1", = ["derive", "env"] }
= "0.3.32"
= { = "0.13.4", = ["json"] }
= "6"
= { = "0.6.0", = ["async"] }
= { = "0.23.40", = ["ring"] }
= "1.0.228"
= "1.0.150"
= "0.11.0"
# pake-internal: sha2 0.10 (for hkdf/hmac 0.12 trait compat). Renamed to
# avoid the 0.10/0.11 name clash; the pake module aliases it as `sha2`.
= { = "sha2", = "0.10" }
= "0.12"
= "0.12"
= "=0.4.0"
= "0.4"
= "0.6"
= "0.2"
= "0.4.46"
= { = "2", = false, = ["deflate"] }
= { = "1.52.3", = ["full"] }
= "0.17.1"
= "4.6.5"
= "0.3.0"
= "1.1.9"
= { = "0.14.1", = false }
# web-shell: spawn a login shell in a PTY and bridge it to the browser terminal.
= "0.8"
# rung-1 direct CLI<->CLI transport (FILAMENT_DIRECT=1). ring crypto to match
# the rest of the rustls tree; we hand quinn an explicit ring-based config so
# no process-default crypto provider is required.
= { = "0.11.9", = false, = ["runtime-tokio", "rustls-ring", "log"] }
= "0.11"
= { = "=0.13.2", = false, = ["ring", "pem"] }
# L3 overlay crypto: a per-device Ed25519 identity whose public key IS the overlay
# address (self-certifying, Yggdrasil-style). ring is already in the tree via
# rustls/quinn/rcgen; this is a direct handle for Ed25519 sign/verify + CSPRNG, so
# we never hand-roll the crypto.
= "0.17"
= { = "0.5", = ["all"] }
# Userspace L3 netstack: an in-process TCP/IP stack so a zero-privilege node (no
# CAP_NET_ADMIN, no /dev/net/tun, e.g. a container) is a first-class overlay member.
# Pure Rust, no OS device (more portable than the kernel-TUN/Wintun backends); it
# feeds/drains bare IPv6 packets to/from the same direct-QUIC datagram carrier. IPv6
# is mandatory (the overlay is an IPv6 ULA); TCP only for now.
= { = "0.12", = false, = ["std", "medium-ip", "proto-ipv4", "proto-ipv6", "socket-tcp"] }
# Interactive guided code entry (raw mode + key events + styled output;
# cross-platform incl. Windows). Used ONLY behind the interactivity gate; a
# non-TTY / scripted run never enters its event loop.
= "0.29"
# L3 TUN backends (unix): Linux opens /dev/net/tun via a TUNSETIFF ioctl; macOS
# opens a utun via a PF_SYSTEM control socket. Both wrap the fd in tokio's AsyncFd
# and set addr/mtu/route through the system CLI (iproute2 / ifconfig+route), so no
# netlink crate is pulled. libc is the only addition on unix.
[]
= "0.2"
# Linux mount client adapter: present the mesh-native mount protocol as a real
# local filesystem via FUSE. Server side needs no FUSE; only the client mount does.
# This stays default-on: it builds on stock Linux runners and is fully exercised
# by mount-gates.sh.
[]
= "0.17"
# Windows L3 backend: Wintun (WireGuard's userspace TUN driver) via wintun.dll,
# loaded at runtime with libloading. The DLL is bundled beside filament.exe by the
# release packaging; adapter creation needs Administrator.
# Windows L3 backend: Wintun (WireGuard's userspace TUN driver) via wintun.dll,
# loaded at runtime with libloading. The DLL is bundled beside filament.exe by the
# release packaging; adapter creation needs Administrator.
[]
= "0.5"
# Pinned to 0.12: 0.13 is a significant API refactor (FileSystemHost::new
# takes 2 args, DirInfo is now generic DirInfo<N>, VolumeParams is a builder).
# Upgrade tracked as follow-up item.
= { = "=0.12.0", = ["full", "windows-61"], = true }
= { = "=0.3.0", = true }
[]
= "thin"
= 16
= true