Update README and TODO

This commit is contained in:
Joakim Frostegård 2020-04-13 14:41:40 +02:00
parent c44c5b017f
commit fbeade0ca2
2 changed files with 22 additions and 14 deletions

View file

@ -1,7 +1,17 @@
# aquatic
Fast multithreaded UDP BitTorrent tracker written in Rust
Fast, multi-threaded UDP BitTorrent tracker written in Rust.
## Interesting links
Aims to implements the [UDP BitTorrent protocol](https://libtorrent.org/udp_tracker_protocol.html), except that it:
- [UDP BitTorrent protocol](https://libtorrent.org/udp_tracker_protocol.html)
* Doesn't care about IP addresses sent in announce requests. The packet
source IP is always used.
* Doesn't track of the number of torrent downloads (0 is always sent).
Supports IPv4 and IPv6.
There is currently no support for a info hash black- or whilelist.
## Trivia
The tracker is called aquatic because it thrives under a torrent of bits.

20
TODO.md
View file

@ -1,26 +1,25 @@
# TODO
## aquatic
* Use bounded request channel?
* Handle Ipv4 and Ipv6 peers. Probably split state. Ipv4 peers can't make
use of Ipv6 ones. Ipv6 ones may or may note be able to make use of Ipv4
ones, have to check.
* More tests
* mio: set oneshot for epoll and kqueue?
* Handle Ipv4 and Ipv6 peers. Probably split torrent state. Ipv4 peers
can't make use of Ipv6 ones. Ipv6 ones may or may note be able to make
use of Ipv4 ones, I have to check.
* More tests?
## aquatic_bench
* Fix issues since switch to socket and handler workers, removal of dashmap
* Iterate over whole returned buffer and run e.g. xor on it (.iter().fold())
* Generic bench function since current functions are almost identical
* Show percentile stats for peers per torrent
## bittorrent_udp
* Tests with good known byte sequences
* Tests with good known byte sequences (requests and responses)
# Not important
## aquatic
* No overflow on instant + duration arithmetic now, hopefully?
* No overflow on instant + duration arithmetic now, hopefully? Possibly,
checked_add should be used.
* extract_response_peers
* Cleaner code
* Stack-allocated vector?
@ -34,8 +33,7 @@
it.
## aquatic_bench
* num_rounds command line argument
* Send in connect reponse ids to other functions as integration test
* Config vars as command line arguments too?
* Save last results, check if difference is significant?
* ProgressBar: `[{elapsed_precise}]` and eta_precise?
* Test server over udp socket instead?