Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
PocketStation
PocketStation is a local-first Rust capture primitive for turning one permitted desktop application and one microphone into independent, source-aware live stems that can be observed, fanned out, transported, and recorded.
application + microphone
↓
independent timed stems
↓
application callback + example transport + multistem recording
The product ships as one Cargo package, pocketstation. Its internal engine,
capture backends, graph, runtime, recording, codec, timing, observations, and C
projection are modules of that package. The native deliverable is
libpocketstation; C consumers include pocketstation.h.
[]
= "1.0.0"
Public Surface
The supported Rust entry point is pocketstation::Session. The narrow contract
selects an application and microphone, starts capture, receives each stem
independently, observes lifecycle/errors, stops, and receives recording
outcomes. Provider and transport integrations belong in examples or external
packages, not in the engine.
The internal-testing Cargo feature exposes implementation types only to
repository-owned conformance fixtures, the CLI, and the neutral benchmark. It
is not a supported application API.
The extension surface is open rather than provider-named:
SourceFactory/SourceDriveradd externally owned audio or typed sources;Operatormanifests declare stable named input/output ports;EndpointDriverFactoryowns external destinations;Stream<T>gives Rust compile-time composition whileSignalSpecand schema remain the runtime, C, sidecar, and other-language identity;- the versioned bounded sidecar protocol lets managed-language processes extend the one engine without executing managed code on audio callbacks.
See the documentation index and extension guide.
Internal Ownership
| Module | Responsibility |
|---|---|
session |
Public lifecycle, composition, cancellation, polling, and outcomes |
frame |
Buffers, source/stem identity, timestamps, sequence, and lineage |
timing |
Clock-domain estimation and correction |
graph |
Open signal/operator/endpoint contracts, compiler, and plan |
runtime |
Execution, bounded Bridges, fan-out, drops, and observations |
capture |
Capture contracts and macOS/Windows/Linux implementations |
endpoint |
Open destination lifecycle and registration |
recording |
Concrete aligned multistem recording |
codec |
Codec behavior and compatibility ABI implementation |
abi |
C projection of the same Session and codec implementation |
Advanced denoise, echo cancellation, voice activity detection, inference, and other product algorithms are external Operators rather than built-in Core modules.
Metrics are operational observations owned by runtime; they are not a
separate product subsystem or crate.
Artifact Names
- Rust:
pocketstation - C header:
pocketstation.h - Unix library:
libpocketstation.a,libpocketstation.dylib, orlibpocketstation.so - Windows library:
pocketstation.dll/pocketstation.lib - Apple framework target:
PocketStation.framework
Retained pks_* function symbols are temporary binary compatibility only.
There are no separately marketed *-core or *-c products.
Development
Passing component tests is not a real-device claim. Product acceptance still requires the real-path permission, recovery, destination-failure, latency, drop-rate, soak, integrity, and clean-checkout evidence defined by the factory operating contract and execution registry.