Skip to content
This repository was archived by the owner on Sep 27, 2025. It is now read-only.

ayutaz/orochi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

71 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Orochi - Modern BitTorrent Client

CI License: MIT Go Report Card Release

A modern, secure, and user-friendly BitTorrent client with a beautiful web interface, written in Go and React.

Features

  • πŸš€ Modern Web UI - Beautiful, responsive interface built with React and Material-UI
  • πŸ”„ Real-time Updates - Live progress tracking via WebSocket
  • 🎯 Smart File Selection - Choose which files to download within torrents
  • 🌍 Cross-platform - Works on Windows, macOS, and Linux
  • πŸ”’ Security First - VPN binding, kill switch, and authentication support
  • πŸ“¦ Single Binary - No dependencies, easy deployment
  • πŸŒ“ Dark Mode - Easy on the eyes during late-night downloads
  • 🌐 Multi-language - Support for English and Japanese
  • πŸ“Š Comprehensive API - RESTful API with OpenAPI documentation
  • ⚑ High Performance - Efficient concurrent downloads with piece prioritization

Installation

From Binary

Download the latest release for your platform from the releases page.

From Source

Requirements:

  • Go 1.23 or later
  • Node.js 20 or later (for building the web UI)
git clone https://github.com/ayutaz/orochi.git
cd orochi
make build

Quick Start

# Start with default settings
./orochi

# Start on a different port
./orochi --port 9000

# Specify download directory
./orochi --download-dir /path/to/downloads

# Show version information
./orochi --version

Then open http://localhost:8080 in your browser.

Using Real BitTorrent Mode

By default, Orochi runs in stub mode for testing. To use actual BitTorrent functionality:

./orochi --real

⚠️ Legal Notice: Only download and share content you have the legal right to access.

Configuration

Orochi can be configured through:

  • Command-line flags
  • Web interface settings
  • Configuration file (auto-created on first run)

Key settings:

  • Download Directory: Where to save downloaded files
  • Port: BitTorrent listen port (default: 6881)
  • Max Connections: Maximum peer connections
  • Speed Limits: Upload/download speed restrictions
  • VPN Binding: Restrict traffic to specific network interface

Development

This project follows Test-Driven Development (TDD) principles.

Prerequisites

  • Go 1.23 or higher
  • Make (optional)

Running Tests

make test

Running with Coverage

make coverage

Documentation

User Guide

For detailed usage instructions, please see the User Guide (ζ—₯本θͺž).

API Documentation

Once the server is running, you can access the interactive API documentation at:

http://localhost:8080/api-docs

The API documentation is generated using OpenAPI 3.0 specification and provides:

  • Complete API reference with all endpoints
  • Request/response schemas
  • Interactive API testing interface (Swagger UI)
  • WebSocket endpoint documentation

Legal Notice

This software is designed for downloading and sharing files using the BitTorrent protocol. The use of this software for downloading or distributing copyrighted material without permission is illegal. Users are responsible for complying with local laws and regulations.

License

MIT License - see LICENSE file for details.

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Write tests for your changes
  4. Implement your changes
  5. Commit your changes (git commit -m 'feat: add amazing feature')
  6. Push to the branch (git push origin feature/amazing-feature)
  7. Open a Pull Request

Acknowledgments

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •