What's Changed
- Fixing various things by @Power2All in #27
- Bypassing a error by @Power2All in #30
- Development by @Power2All in #31
- Adding a statistics viewing in console by @Power2All in #32
- Development by @Power2All in #33
- Development by @Power2All in #34
- Revert "Development" by @mickvandijke in #38
- Revert "Revert "Development"" by @mickvandijke in #39
- Show coverage report by @josecelano in #56
- Add some tests for configuration by @josecelano in #57
- Add some basic benchmarking of the tracker by @mickvandijke in #64
- Fix compilation issues for target armv7-unknown-linux-gnueabihf by @mickvandijke in #69
- Format The Entire World by @da2ce7 in #79
- Minimal Mockable Clock Implementation by @da2ce7 in #81
- refactor: renamed
SinceUnixEpoch
toDurationSinceUnixEpoch
by @da2ce7 in #90 - refactor: move clock/clock.rs into clock.rs (clippy) by @da2ce7 in #92
- Env: Basic VSCode Extension Recommendations and Settings by @da2ce7 in #80
- Clock: Time Extent, Maker, and Associated Traits by @da2ce7 in #83
- Add tests to
udp::handlers
by @josecelano in #82 - Add tests for
tracker::peer::TorrentPeer
by @josecelano in #94 - Add tests for
InfoHash
by @josecelano in #89 - Add tests to
TorrentEntry
by @josecelano in #88 - Fix vscode settings by @josecelano in #95
- format: re-apply rust-format by @da2ce7 in #99
- Crypto: Ephemeral Instance Random Seeds with Keepers by @da2ce7 in #84
- Use nightly toolchain for formatting by @josecelano in #100
- Udp: Basic Connection Cookie Implementation by @da2ce7 in #85
- Make tracker statistics optional again by @josecelano in #102
- Integration tests for UDP Tracker by @josecelano in #96
- chore: update project dependencies by @da2ce7 in #104
- Refactor
StatsTracker
by @josecelano in #103 - Fix All Clippy Problems by @da2ce7 in #110
- Revert unintentional change for auth key generation API endpoint by @josecelano in #109
- db: check info_hash record not found instead dropping all errors by @da2ce7 in #118
- Fix API bug: Torrent cannot be whitelisted twice by @josecelano in #117
- Refactor: rename peer.updated field in torrent detail endpoint by @josecelano in #119
- Fix Clippy Pedantic Warnings and Structure Rename by @da2ce7 in #115
- Use an independent SQLite DB for each test by @josecelano in #126
- Add ssl support for the API by @josecelano in #128
- Full docker support (reorganized) by @josecelano in #129
- Publish docker image only when secrets are available by @josecelano in #140
- Add tests for the API by @josecelano in #149
- Refactor API: replace Warp with Axum by @josecelano in #152
- Workflow to publish crate on crates.io by @josecelano in #147
- Add tests for the HTTP tracker by @josecelano in #162
- Ugrade workflow actions by @josecelano in #166
- Refactor: UDP integration tests to follow mod structure conventions by @josecelano in #169
- Located Errors for Torrust-Tracker by @da2ce7 in #178
- Axum HTTP tracker: discarded PR by @josecelano in #179
- Axum HTTP tracker: basic scaffolding by @josecelano in #180
- Axum HTTP tracker: remove duplicate code from announce request hadlers by @josecelano in #182
- Remove duplicate code from
announce
request handlers by @josecelano in #183 - Axum HTTP tracker:
announce
request in public mode by @josecelano in #185 - Axum HTTP tracker: compact
announce
response in public mode by @josecelano in #190 - Axum HTTP tracker:
scrape
response in public mode by @josecelano in #192 - Refactor:
auth::Key
by @josecelano in #197 - Axum HTTP tracker:
announce
request inprivate
mode by @josecelano in #198 - Axum HTTP tracker:
scrape
request inprivate
mode by @josecelano in #199 - Axum HTTP tracker:
announce
request inlisted
mode by @josecelano in #202 - Axum HTTP tracker:
scrape
request inlisted
mode by @josecelano in #203 - Axum HTTP tracker: remove temporary
status
endpoint by @josecelano in #206 - Axum HTTP tracker: extract Axum extractor for URL path auth
key
param by @josecelano in #208 - Add unit tests for
Tracker
by @josecelano in #210 - Refactor
ExpiringKey
by @josecelano in #215 - Axum HTTP tracker: add unit tests for custom Axum extractors by @josecelano in #217
- Axum HTTP tracker: unit tests for
announce
request handler by @josecelano in #219 - Axum HTTP tracker: unit tests for
scrape
request handler by @josecelano in #221 - Axum HTTP tracker: unit tests for
announce
service by @josecelano in #223 - Rebase of PR 170 by @josecelano in #226
- Axum HTTP tracker: unit tests for
scrape
service by @josecelano in #225 - Enable Axum HTTP tracker by @josecelano in #228
- Remove Warp HTTP Tracker by @josecelano in #231
- Update cargo dep
r2d2_mysql
from21
to23
by @josecelano in #232 - Refactor: remove cargo dep
warp
and addhyper
by @josecelano in #233 - Update cargo deps by @josecelano in #235
- Update cargo aliases by @josecelano in #236
- Refactor API folder structure by @josecelano in #237
- API overhaul: add version prefix
v1
to the API endpoints by @josecelano in #239 - Refactor: use domain struts in DB trait by @josecelano in #241
- Use datetime ISO 8601 in auth key API endpoint by @josecelano in #243
- Add prefix
0x
to peer ID hex string by @josecelano in #245 - Refactor: reorganize modules by @josecelano in #246
- docs: crate docs for
lib.rs
by @josecelano in #257 - docs: crate docs for core
tracker
andbootstrap
mods by @josecelano in #258 - Lint Documentation by @da2ce7 in #264
- Crate docs for
shared
module by @josecelano in #261 - Crate docs for
apis
module by @josecelano in #265 - Crate docs for
servers::http
module by @josecelano in #268 - Crate docs for
servers::upd
module by @josecelano in #273 - Crate docs for
configuration
package by @josecelano in #276 - Crate docs for
located-error
package by @josecelano in #278 - Update cargo dependencies by @josecelano in #283
- Dependabot workflow by @josecelano in #282
- Upload code coverage to
codecov.io
by @josecelano in #168 - Crate docs for
primitives
package by @josecelano in #290 - Crate docs for
test-helpers
package by @josecelano in #291 - Update README by @josecelano in #294
- Add README to packages by @josecelano in #298
- Remove API endpoint without version prefix by @josecelano in #299
- Remove unused dependencies by @josecelano in #300
- Remove
always: restart
configuration for MySQL from docker compose by @josecelano in #301 - Update dependencies by @josecelano in #303
- chore(deps): bump h2 from 0.3.16 to 0.3.17 by @dependabot in #304
- Fix CVE-2020-26235 vulnerability by @josecelano in #307
- chore(deps): bump hyper from 0.14.25 to 0.14.26 by @dependabot in #308
- Add system dependencies to docs by @josecelano in #320
- docs: increase swap to avoid build errors by @josecelano in #322
- Udpate dependencies by @josecelano in #338
- Normalize license by @josecelano in #342
- refactor: remove wildcard imports from time_extent.rs by @da2ce7 in #181
- Overhaul Coverage Report Workflow for Codecov by @da2ce7 in #355
- Tighten Linter (Check and Clippy) by @da2ce7 in #353
- Update Coverage Workflow by @da2ce7 in #358
- Fix single-command to run demo env with docker by @josecelano in #365
- Improve docker UX by @josecelano in #367
- Update dependencies by @josecelano in #368
- chore: fix new clippy warning by @da2ce7 in #377
- chore: update cargo lockfile by @da2ce7 in #378
- deps: localy provided bencode implmentation by @da2ce7 in #366
- Overhaul Testing Workflow by @da2ce7 in #364
- Added tower-http compression as middleware on both HTTP routers by @alexohneander in #386
- Add Expected Should Panic Message to Tests by @da2ce7 in #397
- chore: update lockfile by @da2ce7 in #398
- Overhaul Containers by @da2ce7 in #363
- ci: use coverage upload token by @da2ce7 in #399
- Improve Deployment Infrastructure by @da2ce7 in #400
- chore(deps): bump actions/checkout from 3 to 4 by @dependabot in #395
- chore(deps): bump r2d2_mysql from 23.0.0 to 24.0.0 by @dependabot in #369
- docs: update readme by @da2ce7 in #402
- fix: deployment workflow bugfix by @da2ce7 in #403
- dev: vairous fixes by @da2ce7 in #404
- dev: use releases branch prefix by @da2ce7 in #409
- More Release Preparation by @da2ce7 in #412
- dev: debug container workflow by @da2ce7 in #413
- fixup: context output by @da2ce7 in #414
- dev: more container workflow fixups by @da2ce7 in #420
- dev: coverage: change to pull request target by @da2ce7 in #421
- dev: fixup, fix event_name test by @da2ce7 in #422
- dev: rename database driver environmental variable by @da2ce7 in #418
- chore: update deps by @da2ce7 in #423
- fixup: wrong env in deployment workflow by @da2ce7 in #430
- ci: fix for bug in upstream lib by @da2ce7 in #438
- update deps by @da2ce7 in #437
- Draft 2 of Release Process Document by @da2ce7 in #432
- chore: bump alpha version to 3.0.0-alpha.7-develop by @da2ce7 in #439
- Release Version 3.0.0-alpha.7 by @da2ce7 in #440
- Vairous Fixes for Release by @da2ce7 in #443
- Release Version 3.0.0-alpha.8 by @da2ce7 in #445
- Prepare for 3.0.0-alpha.9 by @da2ce7 in #448
- chore: update cargo lockfile by @da2ce7 in #449
- docs: update release process by @da2ce7 in #450
- Release Version
3.0.0-alpha.9
by @da2ce7 in #451 - Prepare for Release of
3.0.0-alpha.10
by @da2ce7 in #452 - Release Version
3.0.0-alpha.10
by @da2ce7 in #454 - Version
3.0.0-alpha.10
was Released by @da2ce7 in #455 - Release Version
3.0.0-alpha.11
by @da2ce7 in #458 - Version
3.0.0-alpha.11
was Released by @da2ce7 in #459 - Vairous Cleanups by @da2ce7 in #460
- docs: remove unneeded copyright document by @da2ce7 in #461
- Renaming yml to yaml by @alexohneander in #468
- Update dependencies by @josecelano in #470
- ci: re-enable llvm-cov coverage by @da2ce7 in #474
- ci: export labels using workflow by @da2ce7 in #480
- ci: enable sync labels workflow by @da2ce7 in #481
- ci: fixup labels workflow by @da2ce7 in #484
- ci: improve labels workflow by @da2ce7 in #485
- chore: vairous updates by @da2ce7 in #486
- various: small updates by @da2ce7 in #488
- feat: replace peer ID recognition with tdyne-peer-id-registry by @si14 in #477
- chore: update deps by @da2ce7 in #501
- Workflow to show the tracker contract in markdown by @josecelano in #463
- chore(deps): bump tokio from 1.33.0 to 1.34.0 by @dependabot in #505
- Udpate dependencies by @josecelano in #516
- Update dependencies by @josecelano in #520
- Implement a health check for the tracker container by @josecelano in #512
- Minor script changes by @josecelano in #529
- chore: update deps by @da2ce7 in #530
- dev: refactor: rename tracker mod to core by @da2ce7 in #531
- Move API healthcheck endpoint from
/health_check
to/api/health_check
by @josecelano in #538 - feat: added benchmarking binary for torrent repository struct by @mickvandijke in #522
- Change log for UDP tracker by @josecelano in #549
- chore: update cargo deps by @da2ce7 in #553
- Update labels.json #503 by @ShrirangB in #555
- Update Cargo Deps by @da2ce7 in #562
- Refactor: split global consts for limits by @josecelano in #568
- Remove always-empty peer list in torrent list item by @josecelano in #570
- Refactor: remove deprecated function by @josecelano in #571
- Preload info hashes in wrk benchmark by @mickvandijke in #579
- chore: update deps by @da2ce7 in #578
- Cleanup Service Initialization by @da2ce7 in #561
- Fix broken grateful shutdown for tracker API by @josecelano in #589
- Fix halt channel closed after starting HTTP tracker by @josecelano in #593
- Fix panicking after starting UDP server due to closed "halt" channel by @josecelano in #595
- Cleanup Announce Response by @da2ce7 in #563
- Add timeout to
http_health_check
binary by @josecelano in #608 - Add timeout to UDP tracker requests by @josecelano in #610
- Add a new HTTP tracker client binary by @josecelano in #622
- Extract Config from Tracker and Heath Check by @da2ce7 in #623
- Fix services bootstraping by @josecelano in #629
- New UDP tracker client for testing purposes by @josecelano in #627
- Remove coverage report generation from testing workflow by @josecelano in #631
- Reset default configuration for development by @josecelano in #635
- Tracker checker: call health check endpoints by @josecelano in #641
- udp: handle udp requests concurrently by @da2ce7 in #644
- E2E tests runner by @josecelano in #643
- E2E tests: Improve E2E tests runner by @josecelano in #648
- HTTP Tracker Client: add
scrape
request by @josecelano in #651 - UDP Tracker Client: add
scrape
request by @josecelano in #655 - Tracker Checker: pass configuration with env var by @josecelano in #657
- Refactor: reorganize modules for console commands by @josecelano in #662
- Tracker Checker: check HTTP trackers by @josecelano in #663
- chore: update deps (Cargo Lockfile) by @da2ce7 in #667
- Tracker Checker: check UDP trackers by @josecelano in #664
- Fix:
unknown feature stdsimd
build error withahash
dependency by @josecelano in #692 - Tracker API: log request and responses by @josecelano in #699
- Add logs to Health Check API by @josecelano in #701
- Add logs to HTTP tracker by @josecelano in #702
- Refactor UDP Tracker logs by @josecelano in #703
- Update dependencies by @josecelano in #709
- Bump EndBug/label-sync from 2.3.2 to 2.3.3 by @josecelano in #710
- Fix podman commands in docs by @josecelano in #711
- Add latency to UDP tracker logs by @josecelano in #712
- Upate cargo dependencies by @josecelano in #716
- Refactor: use
tower_http::request_id::MakeRequestUuid
by @josecelano in #718 - Add ADR about when to use plural for mod names by @josecelano in #719
- Fix linting errors by @josecelano in #726
- Feat: add a new info_hash URL query array to the torrent list endpoint by @josecelano in #728
- Docs: benchmarking by @josecelano in #732
- Udpate benchmarking docs and results by @josecelano in #734
- chore: update cargo deps by @da2ce7 in #737
- dev: bugfix completed download stat by @da2ce7 in #740
- Fix error messages starting UDP tracker by @josecelano in #741
- dev: ci: update coverage build flags by @da2ce7 in #744
- Profiling for the UDP tracker by @josecelano in #747
- chore: various maintenance by @da2ce7 in #745
- Add configuration for cargo flamegprah and docs for profiling by @josecelano in #749
- Minor fixes by @josecelano in #750
- Torrent Repository Work by @da2ce7 in #690
- chore: update deps by @da2ce7 in #759
- dev: ci: enable rust stable workflows by @da2ce7 in #760
- Udpate profiling docs by @josecelano in #769
- Performance optimization: create a new torrent repository using a
SkipMap
instead of aBTreeMap
by @josecelano in #778 - Update dependencies by @josecelano in #780
- Performance optimization: create a new torrent repository using
DashMap
by @josecelano in #784 - Refactor: segregate command and query for announce request by @josecelano in #792
- Update dependencies by @josecelano in #793
- Refactor: extract peer list in torrent repository entry by @josecelano in #797
- Torrent repository with
parking_lot
crate locks by @josecelano in #800 - Update dependencies by @josecelano in #805
- chore:[#674] Tracker Checker: Ouput in JSON by @hungfnt in #810
- Refactor UdpClient to return errors instead of panicking by @hungfnt in #814
- refactor: [#680] http return errors instead of panicking by @hungfnt in #826
- Update dependencies by @josecelano in #832
- Bump
aquatic_udp_protocol
from0.8.0
to0.9.0
by @josecelano in #837 - Bump
ringbuf
from0.3.3
to0.4.0
by @josecelano in #839 - Update dependencies by @josecelano in #840
- feat: log aborted UDP requests by @josecelano in #841
- Update installation docs by @josecelano in #843
- chore(deps): bump
rustc-demangle
fromv0.1.23
tov0.1.24
by @josecelano in #844 - docs: fix profiling docs by @josecelano in #847
- dev: fix udp ring-buffer not looping by @josecelano in #846
- Use
figment
for configuration by @josecelano in #808 - Refactor: enrich field types in configuration structs by @josecelano in #854
- Refactor: tracker core service only needs the core config by @josecelano in #857
- Use only non-defaults in
toml
config templates by @josecelano in #858 - Update dependencies by @josecelano in #859
- Show
toml
file location in Figment errors by @josecelano in #860 - Rename environments variables by @josecelano in #861
- Update README by @josecelano in #862
- Fix Roadmap in README by @josecelano in #863
- Add timeouts for Axum server in the Tracker API by @josecelano in #865
- Add timeout for time waiting for the first HTTP tracker request by @josecelano in #866
- Fix README HTTP port by @GGLinnk in #874
- Fix and improved bootstrap jobs module test. by @GGLinnk in #875
- Add privacy methods to the
TrackerMode
enum by @josecelano in #871 - Update dependencies by @josecelano in #881
- [#670] new JSON serialization for connect and error aquatic responses by @mario-nt in #876
- docs: add benchmarking to torrent repo README by @josecelano in #886
- Update dependencies by @josecelano in #887
- Move from
log
totracing
crate by @josecelano in #888 - Use
clap
andanyhow
crates in E2E test runner by @josecelano in #890 - Update benchmarking docs by @josecelano in #894
- Update dependencies by @josecelano in #895
- Enable colour in console output by @josecelano in #896
- Fixes docker build error:
failed to load bitcode of module criterion ...
by @josecelano in #899 - Configuration overhaul: version 2 for the configuration toml file (breaking changes) by @josecelano in #897
- Update dependencies by @josecelano in #906
- Implment Request Stream for UDP Tracker by @da2ce7 in #873
- Minor UDP server refactorings by @josecelano in #913
- Fix: clients output in JSON should not include logging by @josecelano in #919
- ci: nightly build for coverage by @da2ce7 in #924
- ci: pre-build coverage test by @da2ce7 in #926
- ci: coverage build with two jobs by @da2ce7 in #927
- ci: coverage workflow add pre-build-test step by @da2ce7 in #928
- Client Work: Improve Error Enums and Some Basic Cleanup by @da2ce7 in #923
- Update dependencies by @josecelano in #930
- ci: coverage workflow pre-build fix by @da2ce7 in #931
- Add comments to the UDP server by @josecelano in #921
- Config overhaul: split tracker mode by @josecelano in #934
- Config overhaul: define current config version as version 2 by @josecelano in #940
- Config overhaul: improve admin experience by @josecelano in #941
- Config overhaul: rename
log_level
tothreshold
by @josecelano in #942 - Update dependencies by @josecelano in #946
- Config overhaul: add version and namespace to the configuration by @josecelano in #947
- Config overhaul: remove secrets when final config is printed to console by @josecelano in #951
- Config overhaul: lowercase for
DatabaseDriver
by @josecelano in #953 - udp: processor for requests by @da2ce7 in #955
- dev: remove async trait dep by @da2ce7 in #959
- chore: update deps by @da2ce7 in #960
- use major version in toml files, and update major versions by @da2ce7 in #962
- Fix uppercase for containerfile keywords by @josecelano in #963
- Update dependencies by @josecelano in #973
- New API endpoint to upload pre-existing keys by @josecelano in #975
- Do not allow invalid tracker keys by @josecelano in #980
- Overhaul tracker keys: allow permanent keys by @josecelano in #983
- Overhaul tracker keys: option to disable auth key expiration by @josecelano in #988
- Overhaul tracker keys: add more tests by @josecelano in #990
- Config overhaul: use an explicit section for metadata by @josecelano in #991
- Config overhaul: make some fields mandatory by @josecelano in #992
- Update dependencies by @josecelano in #995
- docs: update roadmap in README by @josecelano in #996
- Disable
TimeoutAcceptor
when TSL is enabled by @josecelano in #954 - fix: benchmarking config template by @josecelano in #1001
- Fix bug: the tracker should always remove inactive peers by @josecelano in #1003
- Remove default configuration values for secrets by @josecelano in #1007
- Update dependencies by @josecelano in #1008
- Fix missing publishing packages by @josecelano in #1011
- Release Version 3.0.0-alpha.12 by @josecelano in #1009
- Version 3.0.0-alpha.12 was Released by @josecelano in #1012
- Update dependencies by @josecelano in #1018
- dev: remove some internal types in preference for aquatics by @da2ce7 in #961
- update deps including bencode contrib by @da2ce7 in #1021
- Improve Tracing Part One by @da2ce7 in #1022
- Release Version 3.0.0-beta by @josecelano in #1027
- Version 3.0.0-beta was Released by @josecelano in #1028
- Udpate dependencies by @josecelano in #1034
- Allow UDP clients to limit peers in response by @josecelano in #1035
- Remove debugging print by @josecelano in #1036
- Fix: wrong req type name in tracker checker output by @josecelano in #1038
- Tracker checker supports more service address formats by @josecelano in #1041
- Update dependencies by @josecelano in #1044
- Release Version 3.0.0-rc.1 by @josecelano in #1045
- Version 3.0.0-rc.1 was Released by @josecelano in #1046
- Fix link to containers docs by @josecelano in #1054
- Release Version 3.0.0 by @josecelano in #1056
New Contributors
- @da2ce7 made their first contribution in #79
- @alexohneander made their first contribution in #386
- @si14 made their first contribution in #477
- @ShrirangB made their first contribution in #555
- @hungfnt made their first contribution in #810
- @GGLinnk made their first contribution in #874
- @mario-nt made their first contribution in #876
Full Changelog: v2.2.1...v3.0.0