Weave documentation
Filament

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

NeedGuide
Choose a package and identify its exportsCrate map
Manage routing, announces and path requestsTransport
Encode packets and understand unfinished link integrationPackets and links
Configure concrete network interfacesInterfaces
Inspect package manifests and exact declarationsAPI 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.

SurfaceCurrent implementation
Core runtimeInstance::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 transportLink::establish, Link::accept and Link::send retain transport integration TODOs. send queues encrypted bytes locally. A successful return is not remote delivery.
Initiator handshakeestablish 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 parsingPacket::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 manageradd_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 utilitiesThe 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.

On this page