Skip to content

Binding support

Honker’s core is Rust. The extension owns the SQLite schema and SQL functions. Bindings are thin language wrappers over that same shape.

“Yes” means the feature has a typed binding and runs in root CI. “SQL” means the extension feature is available through raw SQL, but the language wrapper does not expose the nice API yet. For install and ORM details, see the language guides.

BindingPackage proofQueueStreamsNotify/listenSchedulerOutboxWatcher backends
SQLite extensionload smokeSQLSQLnotify SQL onlySQLSQLhost language must watch/read
Python honkeryesyesyesyesyesyespoll, kernel, shm
Node @russellthehippo/honker-nodeyesyesyesyesyesyespoll, kernel, shm
.NET Honkeryesyesyesyesyesyespoll, kernel, shm
Rust honkerCIyesyesyesyesyespoll, kernel, shm
GoCIyesyesnotify yes, wait APIyesyespoll, kernel, shm
Bun @russellthehippo/honker-bunCIyesyesyesyesyespoll, kernel, shm
C++CIyesyesyesyesyespoll, kernel, shm
Java dev.honker:honkerCIyesyesyesyesyespoll, kernel, shm
Kotlin dev.honker:honker-kotlinCIyesyesyesyesyespoll, kernel, shm
Ruby honkeryesyesyesnotify yes, wait APIyesyespoll, kernel, shm
Elixir honkerCIyesyesnotify yes, wait APIyesyespoll, kernel, shm
  • PR CI runs Rust core/extension on Linux, macOS, and Windows.
  • PR CI runs Python on Linux, macOS, and Windows.
  • PR CI runs Node on Linux, macOS, and Windows.
  • PR CI runs .NET on Linux, macOS, and Windows.
  • PR CI runs Java and Kotlin package tests on Linux, macOS, and Windows.
  • The aggregate Linux binding smoke runs Rust wrapper, Go, .NET Python interop, C++, Bun, Ruby, Elixir, Java/Kotlin, and Ruby/Python interop.
  • The packaged-install proof workflow builds and installs Python, Node, Ruby, and .NET packages into clean throwaway consumers.
  • Watcher-backend queue proofs run cross-process for every binding so extension loading, database reopen, SHM reopen, wake delivery, and no-fallback behavior are exercised outside a single runtime process.
  • Published registry installs after release. The proof workflow uses locally-built artifacts, which catches packaging shape but not registry permissions or CDN weirdness.
  • Every possible cross-language pair. CI proves representative pairs and shared table behavior. It does not run N x N interop.
  • Long soak on every OS. The scary nightly workflow soaks Linux; PR CI stays shorter.
  • Go, Ruby, and Elixir expose notifications and update-waiting without the same high-level async listener shape as Python/Node/.NET/Rust/Bun/C++/JVM.