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.
scripts/rebuild-native.shrebuildsbetter-sqlite3,node-datachannel, andtree-sitterfrom source withCXXFLAGS="-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:
node-datachannelexists 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.tree-sitteris 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.