Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
9ab4172
Refactored a lot, introduced WebTorrent
Feb 10, 2026
c0d9b48
Adding WebTorrent support, updating v4.1.1 to v4.2.0 version, and upd…
Feb 10, 2026
3152a63
Updating Readme
Feb 10, 2026
bb6ca27
Removing WebTorrent support.
Feb 14, 2026
0bdf559
Fixing Sentry
Feb 14, 2026
acb199d
Applying RtcTorrent implementation, still needs further testing and p…
Feb 23, 2026
63584bd
Bumping versions
Feb 23, 2026
948ddde
Fixing the player
Feb 23, 2026
ae9c06e
Updating readme
Feb 24, 2026
30cd81a
Bumping version, cleaning up unneeded data and adding compression
Feb 24, 2026
83e70b8
Adding webseed (BEP-19) support
Feb 24, 2026
524a9de
Updating readme, as we use video.js for the video player
Feb 24, 2026
32babf9
New icon
Feb 24, 2026
f2c00fd
Fixing some bugs
Feb 24, 2026
02c8200
RtcTorrent debugging, player.html and index.html now work as expected…
Feb 25, 2026
556bdbc
Adding rtc-seed, a pure Rust seeding tool for RtcTorrent support, rea…
Feb 25, 2026
1ce3940
Fixing the readme
Feb 25, 2026
b2a1694
Adding rtc-seed readme
Feb 25, 2026
d06e41f
Fixing the seeder issue, adding a feature to batch seed torrents.
Feb 26, 2026
080adf8
Also made a pure bittorrent seeding app, works almost the same as rtc…
Feb 26, 2026
64fff48
Fixing 2021 edition to 2024
Feb 26, 2026
fcd5849
Applying clippy fixes
Feb 27, 2026
e270407
Fixed BEP-12 support in the seeder apps
Feb 27, 2026
9f32bc9
Fixing BT-Seed and RTC-Seed to have also a web interface to control
Feb 28, 2026
af35ec3
Debugging code
Mar 1, 2026
5c9c978
Adding browser
Mar 1, 2026
ed6bd82
Cleaning up code
Mar 1, 2026
68d2453
Fixing the bt-seed and rtc-seed
Mar 1, 2026
dace300
Consolidated bt-seed and rtc-seed into "seeder" and a small hello-wor…
Mar 1, 2026
1300c66
Forgot to push some
Mar 1, 2026
623eb79
Fixing a GUI build issue on non GUI system
Mar 1, 2026
fb23e61
Changing --torrents to --config for consistancy
Mar 1, 2026
744ec00
Fixing frontend
Mar 1, 2026
e6565fc
Fixing login page
Mar 1, 2026
dd42f49
Adding logo
Mar 1, 2026
7cce161
Fix the starting path for the browser
Mar 1, 2026
23490e8
Adding websocket live statistics
Mar 1, 2026
4c5ad4d
Fixing chart
Mar 1, 2026
ce53013
Fixing some bugs
Mar 1, 2026
a5931ee
Trying to fix some bugs
Mar 1, 2026
d326e06
Trying to fix chart, not working yet
Mar 1, 2026
a77202f
Bumping ws version and some small fixes
Mar 1, 2026
7d8c630
Moving the seeder application to it's own new repo
Mar 2, 2026
d239965
Updating README
Mar 2, 2026
5b646ca
Forgotten ID of Discord
Mar 2, 2026
05d9b27
RtcTorrent implementation explained, useful for other projects to imp…
Mar 2, 2026
ed37af4
Bump versions
Mar 3, 2026
d9364bc
Fixing icon
Mar 5, 2026
34d9eb1
Also add auto drafting release
Mar 6, 2026
796d92e
Fixing peer return data
Mar 7, 2026
c8f2cb2
Fix possible big peer data not returned properly
Mar 7, 2026
d123761
Fixing UDP IPv4/IPv6 splitting
Mar 7, 2026
c21132e
Fixing IPv4 and IPv6 splitting
Mar 7, 2026
c30a9af
Still debugging
Mar 7, 2026
36a390a
Finishing fixes
Mar 8, 2026
dc14e0f
Preparing release of v4.2.0
Mar 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
157 changes: 149 additions & 8 deletions .github/workflows/all_build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,34 +4,175 @@ on:
push:
branches:
- master
pull_request:
branches:
- master

permissions:
contents: write

env:
CARGO_TERM_COLOR: always

jobs:
get_version:
name: Get Version
runs-on: ubuntu-latest
outputs:
version: ${{ steps.get_version.outputs.version }}
upx_version: ${{ steps.get_upx_version.outputs.upx_version }}

steps:
- name: Checkout code
uses: actions/checkout@v4
with:
fetch-depth: 0

- name: Get version from Cargo.toml
id: get_version
shell: bash
run: |
VERSION="v$(grep "^version = " Cargo.toml | head -1 | awk '{print $3}' | tr -d '"')"
echo "version=$VERSION" >> $GITHUB_OUTPUT
echo "Version: $VERSION"

- name: Get latest UPX version
id: get_upx_version
run: |
UPX_VERSION=$(curl -s https://api.github.com/repos/upx/upx/releases/latest | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/')
echo "upx_version=$UPX_VERSION" >> $GITHUB_OUTPUT
echo "Latest UPX version: $UPX_VERSION"

build:
name: Build on ${{ matrix.os }} (${{ matrix.toolchain }})
name: Build on ${{ matrix.os }}
needs: get_version
runs-on: ${{ matrix.os }}

strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
toolchain: [nightly, stable]
include:
- os: ubuntu-latest
binary_ext: .bin
binary_name: linux
strip_command: strip
upx_base_url: https://github.com/upx/upx/releases/download
upx_file: amd64_linux.tar.xz
- os: macos-latest
binary_ext: .bin
binary_name: macos
strip_command: strip
- os: windows-latest
binary_ext: .exe
binary_name: windows
strip_command: strip
upx_base_url: https://github.com/upx/upx/releases/download
upx_file: win64.zip

steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Setup Toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: ${{ matrix.toolchain }}

- name: Test project
run: cargo test --all-features --verbose

- name: Build project
run: cargo build --release --verbose
run: cargo build --release --verbose

- name: Strip binary
shell: bash
run: |
if [ "${{ runner.os }}" = "Windows" ]; then
"${{ matrix.strip_command }}" target/release/torrust-actix.exe
else
"${{ matrix.strip_command }}" target/release/torrust-actix
fi

- name: Download and install UPX (Linux/Windows)
if: matrix.upx_base_url != ''
shell: bash
run: |
UPX_VERSION="${{ needs.get_version.outputs.upx_version }}"
UPX_VERSION_NOV="${UPX_VERSION#v}"
UPX_URL="${{ matrix.upx_base_url }}/$UPX_VERSION/upx-$UPX_VERSION_NOV-${{ matrix.upx_file }}"
echo "Downloading UPX from: $UPX_URL"
if [ "${{ runner.os }}" = "Windows" ]; then
mkdir -p upx-temp
cd upx-temp
curl -L "$UPX_URL" -o upx.zip
unzip upx.zip
cp upx-*/upx.exe ../upx.exe
cd ..
rm -rf upx-temp
else
cd /tmp
curl -L "$UPX_URL" -o upx.tar.xz
tar xf upx.tar.xz
UPX_DIR=$(ls -d upx* | head -1)
cd "$UPX_DIR"
chmod +x upx
pwd >> $GITHUB_PATH
fi

- name: Build UPX from source (macOS)
if: runner.os == 'macOS'
run: |
cd /tmp
git clone --recursive https://github.com/upx/upx.git
cd upx
git checkout $(git describe --tags --abbrev=0)
git submodule update --init --recursive
make all
chmod +x build/release/upx
echo "/tmp/upx/build/release" >> $GITHUB_PATH

- name: Compress binary with UPX
shell: bash
run: |
if [ "${{ runner.os }}" = "Windows" ]; then
./upx.exe --best --lzma target/release/torrust-actix.exe
elif [ "${{ runner.os }}" = "macOS" ]; then
upx --best --lzma --force-macos target/release/torrust-actix
else
upx --best --lzma target/release/torrust-actix
fi

- name: Rename binary with version
shell: bash
run: |
VERSION="${{ needs.get_version.outputs.version }}"
if [ "${{ runner.os }}" = "Windows" ]; then
cp target/release/torrust-actix.exe "torrust-actix-${VERSION}-windows.exe"
else
cp target/release/torrust-actix "torrust-actix-${VERSION}-${{ matrix.binary_name }}${{ matrix.binary_ext }}"
fi

- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: torrust-actix-${{ matrix.binary_name }}${{ matrix.binary_ext }}
path: torrust-actix-*${{ matrix.binary_ext }}

create_release:
name: Create Draft Release
needs: [get_version, build]
runs-on: ubuntu-latest

steps:
- name: Download all artifacts
uses: actions/download-artifact@v4
with:
path: ./artifacts

- name: Create Draft Release
uses: softprops/action-gh-release@v1
with:
tag_name: ${{ needs.get_version.outputs.version }}
name: Release ${{ needs.get_version.outputs.version }}
draft: true
prerelease: false
generate_release_notes: true
files: |
./artifacts/*/torrust-actix-*
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Loading
Loading