gnutella
v1.1.0
Published
GnutellaBun is a small Gnutella client for Bun, usable as a CLI or TypeScript library.
Maintainers
Readme
GnutellaBun
GnutellaBun is a small Bun-based 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
It 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.
Prebuilt Binaries
Download a prebuilt executable from the releases page.
After downloading, run the executable directly:
./gnutella-bun-linux-x64 init --config gnutella.json
./gnutella-bun-linux-x64 run --config gnutella.jsonFrom Source
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.jsonLibrary Use
NOTE: Node support is not done. Use Bun.
When used from this repository, the public TypeScript import is:
import { GnutellaServent, loadDoc } from "gnutella";
const configPath = "./gnutella.json";
const doc = await loadDoc(configPath);
const node = new GnutellaServent(configPath, doc);
await node.start();
node.sendQuery("hello world");Guides
- Quickstart: get the CLI working in a few minutes
- CLI Guide: full command and config reference
- Developer Guide: embed GnutellaBun in your own TypeScript app
License
GnutellaBun is released under the GNU General Public License v3.0. See LICENSE.
