Skip to content

feat: add Neptune torrent client support (CLI-only)#1145

Merged
trim21 merged 4 commits into
jesec:masterfrom
trim21:feat/neptune-support
Jun 11, 2026
Merged

feat: add Neptune torrent client support (CLI-only)#1145
trim21 merged 4 commits into
jesec:masterfrom
trim21:feat/neptune-support

Conversation

@trim21

@trim21 trim21 commented Jun 10, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • Add Neptune as a torrent client, configurable via --neptune-url / --neptune-token CLI flags (or FLOOD_OPTION_NEPTUNE_URL / FLOOD_OPTION_NEPTUNE_TOKEN env vars)
  • Not shown in UI dropdown — only accessible through CLI/env configuration
  • Standalone TypeScript SDK (neptune-client.ts) with typed JSON-RPC 2.0 call() overloads, only depends on axios
  • Full torrent lifecycle: add (by file), remove, start, stop, recheck, list, peers, trackers, tags, file priority, move
  • Tracker error tracking: soft tracker errors surface as warning status, distinct from hard IO error state

CLI Usage

flood --auth=none --neptune-url http://127.0.0.1:8002/json_rpc --neptune-token <token>

Neptune API Limitations

Feature Status
Magnet links / URL add Not supported — only .torrent files
Reannouncing Not available
Sequential download Not available
Initial seeding Not available
Client settings read Returns defaults
File priority Binary only (0=skip, 1=download)

Depends on

#1144 (native moving status) — Neptune has a native Moving state that benefits from this.

@trim21 trim21 force-pushed the feat/neptune-support branch from 2da4e8a to ae0460c Compare June 10, 2026 05:21
Add support for Neptune, a headless BitTorrent client with JSON-RPC 2.0 API.

New files:
- server/services/Neptune/clientRequestManager.ts - JSON-RPC 2.0 client
- server/services/Neptune/clientGatewayService.ts - gateway adapter
- server/services/Neptune/types.ts - API type definitions
- server/services/Neptune/util/torrentPropertiesUtil.ts - status mapping
- client connection settings form

Neptune limitations handled:
- Only supports .torrent files (not magnet links)
- No hash checking, reannouncing, sequential download, or initial seeding
- File priority is binary (skip/download only)
- No client settings API (returns defaults)

Also updates AGENTS.md with i18n modification rule.
@trim21 trim21 force-pushed the feat/neptune-support branch from ae0460c to 8f480f1 Compare June 10, 2026 08:08
@trim21 trim21 changed the title feat: add Neptune torrent client support feat: add Neptune torrent client support (CLI-only) Jun 10, 2026
@trim21 trim21 enabled auto-merge (squash) June 11, 2026 15:57
@trim21 trim21 merged commit 67cd626 into jesec:master Jun 11, 2026
20 of 21 checks passed
@trim21 trim21 deleted the feat/neptune-support branch June 11, 2026 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant