Commit Graph

3 Commits

Author SHA1 Message Date
Siavash Sameni
de193dc9f5 Add Gitea Actions CI/CD workflows
Some checks failed
CI / test (push) Failing after 13s
- .gitea/workflows/ci.yml: run tests on every push/PR
- .gitea/workflows/release.yml: build Linux binaries on tag push
  - x86_64 (musl static)
  - aarch64 / RPi 64-bit (musl static)
  - armv7 / RPi 32-bit (musl static)
  - Auto-creates Gitea release with all artifacts
- scripts/build-macos-release.sh: build macOS binary locally and
  upload to an existing Gitea release

Release flow:
  git tag v0.1.0 && git push origin v0.1.0
  # CI builds Linux + RPi, creates release
  # Then on Mac: ./scripts/build-macos-release.sh --upload v0.1.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 14:00:58 +04:00
Siavash Sameni
e604fdb2e7 Add cross-compilation, Linux binary build, and systemd service installer
- Dockerfile.cross: builds static x86_64 musl binary from macOS via Docker
- scripts/build-linux.sh: one-command cross-compilation
- scripts/install-service.sh: systemd service with security hardening
- Bump Rust Docker images to 1.86 for edition2024 support

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 12:52:20 +04:00
Siavash Sameni
d9007dc169 Initial commit: MikroTik btest server & client in Rust
Full reimplementation of the MikroTik Bandwidth Test protocol:
- Server mode: accepts connections from MikroTik devices on port 2000
- Client mode: connects to MikroTik btest servers
- TCP and UDP protocols with bidirectional support
- MD5 challenge-response authentication
- Dynamic speed adjustment (1.5x algorithm)
- Status exchange matching original C pselect() behavior
- Docker support with multi-stage build

Tested against MikroTik RouterOS achieving:
- 1.05 Gbps server RX (single connection)
- 530 Mbps client TCP download
- 840 Mbps client TCP upload
- 433 Mbps client UDP download

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 11:56:34 +04:00