Filament
Eight experimental Rust packages for mesh networking, with explicit current integration boundaries.
Filament is a separate eight-package Rust workspace at sigil/weave/filament. It supplies packet encoding, cryptographic identities, routing data structures, interfaces, link state and operator utilities. All eight manifests currently specify version 0.1.0; that is source version information, not evidence of registry publication.
Filament's eight packages are additional to the 49-package Weave reference. The filament label names this workspace; it is not an umbrella crate to import.
Start with the layer you need
| Need | Guide |
|---|---|
| Choose a package and identify its exports | Crate map |
| Manage routing, announces and path requests | Transport |
| Encode packets and understand unfinished link integration | Packets and links |
| Configure concrete network interfaces | Interfaces |
| Inspect package manifests and exact declarations | API surface |
Current implementation boundaries
Read these boundaries before treating Filament as an integrated mesh service. They are derived from implementation bodies, not the older readiness statements in source comments.
| Surface | Current implementation |
|---|---|
| Core runtime | Instance::new validates configuration and tracks lifecycle. Its initialization logs configured interfaces and transport settings; it does not construct the network stack. The metrics task exports metrics to a log periodically and does not bind an HTTP listener. |
| Link transport | Link::establish, Link::accept and Link::send retain transport integration TODOs. send queues encrypted bytes locally. A successful return is not remote delivery. |
| Initiator handshake | establish initializes initiator_ephemeral_secret to None; handle_proof requires that secret. The current public flow is therefore incomplete even if a caller supplies an incoming proof. |
| Authenticated packet parsing | Packet::parse rejects headers with the IFAC flag using IFAC size encoding not yet implemented. The packet validator checks structure and size; it does not authenticate a cryptographic signature. |
| Interface manager | add_interface spawns a receive loop holding the interface mutex across recv().await; outgoing operations can wait on that lock. Removing the interface from the registry does not itself abort that task. |
| Operator utilities | The daemon exposes real RPC dispatch, but its status, interface, path, probe, identity and transfer responses contain fixed example data or unfinished integration points. filament-id key generation and hashing also contain TODOs. |
The source inventory identifies the files and hashes reviewed. These docs do not claim an independent cryptographic audit, interoperability certification, benchmark result or completed multi-process transport test.