TachyonEventBridge forwards events between processes on the same machine via a single-producer/single-consumer shared-memory ring buffer (Unix-socket handshake, futex-backed wait). Tachyon’s SPSC handshake pairs one producer with one consumer, so deployments typically use one bridge instance for sending and a separate one for receiving; calling both emit() and on() on the same instance creates a self-loop on the same path.
Go support
- Go
- Rust
TachyonEventBridge is not implemented in abxbus-go yet. Use JSONLEventBridge for the currently supported Go bridge.Optional dependencies
The native Tachyon core requires GCC 14+ or Clang 17+ at install time, so it’s exposed as its own extra and intentionally left out of thebridges aggregate (which would otherwise fail to install on stock environments). Install it explicitly when you want this bridge.
- Python
- TypeScript
- Go
- Rust
Constructor params
path: Unix socket path used for the SHM handshake (e.g./tmp/abxbus.sock)capacity: ring buffer size in bytes; must be a positive power of two (default1 << 20)name: optional bridge label
- Python
- TypeScript
- Go
- Rust
Setup with a bus
The listener side must callon(...) before any sender connects so the SHM arena/socket exist on disk.
- Python
- TypeScript
- Go
- Rust
Behavior
- Tachyon is SPSC: a single producer is paired with a single consumer per session. Use a separate bridge instance per direction if you need bidirectional forwarding.
- The producer disconnects from the Unix socket immediately after the SHM handshake; reconnecting after the consumer has accepted is not supported by Tachyon.
close()on the producer side flushes a reservedSHUTDOWN_TYPE_IDsentinel before tearing down its bus so the consumer can exit its blockingrecvloop without an orphaned thread; the same shutdown wire-format is used in both runtimes, so a Python producer can cleanly shut down a TS listener and vice versa. Only the listener side unlinks the socket on disk.- Runtime requirements: a Linux/macOS host with futex/
__ulock_waitsupport; Python needstachyon-ipc, TypeScript needs@tachyon-ipc/coreand Node.js.