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.
rlx-ffi
C ABI for the RLX distributed node — link a mesh worker into an iOS app, an embedded host, or anything else that speaks C.
A node is not necessarily a workstation. The RLX transport layer has no platform
gating and no default C dependencies, so anything with a CPU, a TCP stack and
std can be a rank. This crate is the seam that lets a non-Rust shell be one.
/* Join a 2-rank mesh as worker 1, serving inference. */
;
char buf;
; /* "running", then "ok: …" */
;
Every entry point returns immediately — a serving loop parks in recv between
activations, and a UI thread must not block on it. Poll rlx_node_status.
Modes
"infer"— serve a stage the coordinator ships. Stoppable between activations."train"— join a data-parallel training run. Not stoppable partway: the gradient reduce is a barrier, so a rank that leaves stalls every other rank.
Building
staticlib only. A shared library must resolve every symbol at link time and
zstd-sys (pulled in by the GGUF reader) does not on iOS; a static archive
links happily on both iOS and embedded Linux.
A static archive carries no link directives, so the consuming target must name
what the Rust code needs itself. On Apple platforms that is -framework Accelerate (rlx-cpu's BLAS / LAPACK / vForce), plus -lresolv and -lc++ for
Rust std. See ios/Demo/project.yml in the repository for a worked set.
Features: apple (Metal + ANE), gpu (portable wgpu). Both off by default so
the archive cross-compiles to targets with no such frameworks.
iOS
ios/build-xcframework.sh wraps this crate into RlxNode.xcframework, with a
Swift wrapper and a demo app. iOS needs NSLocalNetworkUsageDescription in
Info.plist for any LAN peer traffic — without it the node reaches nothing and
says nothing. See ios/README.md.
Trying it
The desktop side has a self-test that needs no device:
License
MIT OR Apache-2.0.