Skip to content

Remove the native-toolchain requirement for installing the kernel #1001

Description

@sirtimid

scripts/rebuild-native.sh rebuilds better-sqlite3, node-datachannel, and tree-sitter from source with CXXFLAGS="-std=c++20".

That requires a C++20 toolchain and network access to sources at install time. In a locked-down environment — no compiler on the build host, an internal package mirror, no direct egress — installation fails immediately. This is the kind of thing that stops an evaluation before any of the interesting properties get discussed.

Proposed:

  • Ship or vendor prebuilt binaries for supported platforms, or publish a container image so consumers never build natively.
  • Reduce the native surface: node-datachannel exists only for libp2p WebRTC transport. If a deployment uses TCP, relay, or WebSocket transports, it should not need WebRTC at all — making it optional removes a native dependency and a large amount of attack surface. Worth confirming whether the dependency is genuinely optional today.
  • Check whether tree-sitter is needed at runtime or only by tooling; if the latter, it should not be in the runtime dependency path.

Related: the netlayer work should make transport choice explicit, which makes the WebRTC dependency easier to drop.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions