GBun is a small Gnutella client you can run from the terminal or embed in a TypeScript app.
It is built for people who want to:
- share files from one folder
- search the Gnutella network
- inspect results before downloading
- browse another peer's shared library
- keep useful state across restarts
GBun can be used in three ways:
- as an interactive CLI
- as a scripted CLI runner
- as a library inside another app
It interoperates with other Gnutella clients, including GTK Gnutella.
If you want a prebuilt executable, download one from the releases page.
If you want to run from source:
bun install
bun run bin/gnutella.ts init --config gnutella.json
bun run bin/gnutella.ts run --config gnutella.json- Quickstart: get the CLI working in a few minutes
- CLI Guide: full command and config reference
- Developer Guide: embed GBun in your own TypeScript app
- Publish as NPM package.
- Add better download capabilities (progress tracking, SHA verification, multi-peer downloads)
- Provision signalling cache for WebRTC
- Gnutella Pointer System (GPS)
- Chrome extension for Magnet/GPS documents?
- Improve blocking support (set inclusion check, drop packets from blocked peers, etc..)
- Improve WebRTC support: Ability to find peers via signalling server, Non-TCP WebRTC peer connections, etc..