Skip to content

Yggdrasill-RPG/FF

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 

Repository files navigation

Fairuwo - 高速 P2P ファイル転送ツール

Windows、Linux、macOS で動作するサーバーレス P2P ファイル転送ツールです。

特徴

  • 🚀 超高速転送: 700Mbps を目指す最適化(1MB バッファ、TCP_NODELAY)
  • 🔒 セキュリティ: SHA-256 パスワード認証
  • 🖥️ クロスプラットフォーム: Windows、Linux、macOS 対応
  • 🎨 2 つのインターフェース: GUI と CUI の両方を利用可能
  • 🌐 ローカル・リモート対応: LAN 内 P2P、シグナリングサーバー経由(オプション)

インストール

Linux (.deb パッケージ)

# ビルド
chmod +x build_deb.sh
./build_deb.sh

# インストール
sudo dpkg -i fairuwo_1.0.0_all.deb

Windows (.exe)

REM ビルド (PyInstaller が必要)
build_exe.bat

REM 出力:dist\fairuwo_GUI.exe, dist\fairuwo_CLI.exe

Python から直接実行

# GUI 版
python fairuwo_GUI.py

# CUI 版
python fairuwo_CUI.py server --name "MyPC"

使用方法

GUI 版

python fairuwo_GUI.py
# または
fairuwo-gui  # Linux (deb インストール後)
fairuwo_GUI.exe  # Windows

機能:

  • デバイス名とパスワードを設定
  • 「受信サーバー起動」で待機
  • ファイルをドラッグ&ドロップまたは選択
  • 宛先 IP を入力して「送信」
  • 「ピア発見」で LAN 内のデバイスを自動検出

CUI 版

受信側(サーバー)

python fairuwo_CUI.py server --name "MyPC" --password "secret123"
# または
fairuwo-cli server --name "MyPC" --password "secret123"
fairuwo_CLI.exe server --name "MyPC" --password "secret123"

送信側

python fairuwo_CUI.py send file.zip --host 192.168.1.100 --password "secret123"
# または
fairuwo-cli send file.zip --host 192.168.1.100 --password "secret123"
fairuwo_CLI.exe send file.zip --host 192.168.1.100 --password "secret123"

ピア発見

python fairuwo_CUI.py discover --name "MyPC"
# または
fairuwo-cli discover --name "MyPC"

コマンドラインオプション

サーバーコマンド

オプション 説明 デフォルト
--name デバイス名 MyPC
--password パスワード(任意) なし
--port ポート番号 50050

送信コマンド

オプション 説明 必須
file 送信ファイルパス
--host 宛先ホスト IP
--password パスワード(任意)
--port ポート番号 ❌ (50050)

発見コマンド

オプション 説明 デフォルト
--name デバイス名 MyPC
--timeout 探索時間(秒) 3

技術仕様

高速化技術

  • バッファサイズ: 1MB(標準の 64KB より大幅に増量)
  • TCP_NODELAY: Nagle アルゴリズム無効化
  • 非同期 I/O: スレッドによる並行処理
  • プログレス表示: リアルタイム進捗表示

セキュリティ

  • パスワードハッシュ: SHA-256 + ソルト
  • ワンタイムソルト: 転送ごとに異なるソルト生成
  • 認証失敗時: 即座に接続切断

ネットワーク

  • 発見プロトコル: UDP ブロードキャスト(ポート 50051)
  • 転送プロトコル: TCP 直接接続(ポート 50050)
  • NAT 越え: シグナリングサーバー経由(aiohttp 必要)

制限事項

  • ファイアウォール: ポート 50050/50051 の開放が必要
  • グローバル IP: リモート接続にはグローバル IP またはシグナリングサーバーが必要
  • Tkinter: GUI 版には Python の Tkinter が必要

トラブルシューティング

接続できない

  1. ファイアウォール設定を確認
  2. 同じネットワーク上にいるか確認
  3. IP アドレスが正しいか確認

速度が遅い

  1. LAN ケーブルが Gigabit 対応か確認
  2. 他のネットワーク利用を確認
  3. ウイルス対策ソフトの影響を確認

GUI が起動しない

# Ubuntu/Debian
sudo apt install python3-tk

# CentOS/RHEL
sudo yum install python3-tkinter

# macOS
brew install python-tk

ライセンス

Proprietary

サポート

問題や機能リクエストは GitHub Issues まで。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors