Commit graph

367 commits

Author SHA1 Message Date
Joakim Frostegård
af0c81665d Update TODO 2024-05-02 23:10:30 +02:00
Joakim Frostegård
1dcdd4f688 Update TODO 2024-02-09 01:23:52 +01:00
Joakim Frostegård
c980c23ffc bencher: also bench aquatic_udp with io_uring 2024-02-09 01:21:24 +01:00
Joakim Frostegård
a90f1ff7cc Update TODO 2024-02-08 10:15:13 +01:00
Joakim Frostegård
6f00f760b2 Update TODO 2024-02-04 00:17:18 +01:00
Joakim Frostegård
d1426d3ac5 ws protocol: don't heap-allocate in serialize_20_bytes 2024-02-04 00:14:13 +01:00
Joakim Frostegård
bbba2f7fbc Update TODO 2024-02-03 23:37:23 +01:00
Joakim Frostegård
9d8aca8f86 Update TODO 2024-01-29 22:19:56 +01:00
Joakim Frostegård
d26578d0ba Add plain HTTP transfer CI; update TODO 2024-01-27 10:58:36 +01:00
Joakim Frostegård
09c61b884c Update TODO 2024-01-25 18:59:06 +01:00
Joakim Frostegård
73eeb22f66 http: extract response peers while announcing peer removed
This improves performance by avoiding lots of comparisons
2024-01-24 23:33:15 +01:00
Joakim Frostegård
d346cf97aa Update TODO 2024-01-24 23:04:26 +01:00
Joakim Frostegård
188da135ab ws: add Connection backpressure channel instead of spawning tasks
Seems to fix memory leak issue
2024-01-07 11:27:03 +01:00
Joakim Frostegård
6e7d36cffc ws: add mimalloc feature to make it easier to disable it 2024-01-07 10:41:11 +01:00
Joakim Frostegård
3042539101 update ws dependencies as well as http rustls dependency 2024-01-07 10:40:50 +01:00
Joakim Frostegård
0eaa4475e2 udp: index peers by packet src ip and provided port instead of peer_id 2024-01-04 17:04:17 +01:00
Joakim Frostegård
1df1014798 Update TODO 2024-01-03 17:45:47 +01:00
Joakim Frostegård
74155b4d79 bench: udp: remove 3 cpu core sets to save runtime 2024-01-02 17:41:42 +01:00
Joakim Frostegård
8ad799042e bencher: tweak udp sets, update TODO 2024-01-02 16:56:52 +01:00
Joakim Frostegård
af16a9e682 udp: fix io_uring soundness issues 2023-11-23 18:52:13 +01:00
Joakim Frostegård
923b3637e8 http: allow disabling TLS, allow reverse proxies, general fixes 2023-11-17 18:16:29 +01:00
Joakim Frostegård
fe5ccf6646
ws: refactor, bug fixes, improvements (#155)
- split swarm worker into two modules
- split socket worker into two modules
- keep track of which offers peers have sent and only allow matching
answers
- always clean up after closing connection
- use channel for telling connections to close
- move some logic into new ConnectionRunner struct
- use slotmap for connection reference storage
- fix double counting of error responses
- actually close connections that take too long to send responses to
- remove announced_info_hashes entry on AnnounceEvent::Stopped
2023-11-09 18:06:21 +01:00
Joakim Frostegård
dadb227c63 Update TODO 2023-10-30 20:19:51 +01:00
Joakim Frostegård
cdc817cbdf Update TODO 2023-08-28 23:55:16 +02:00
Joakim Frostegård
67d3e785a5 Update TODO 2023-04-10 00:58:05 +02:00
Joakim Frostegård
a0255ff919 Upgrade socket2 to v0.5 2023-04-10 00:49:55 +02:00
Joakim Frostegård
630e5c0938 Update TODO 2023-03-09 23:02:07 +01:00
Joakim Frostegård
cff6b0cce1 Update TODO 2023-03-08 14:46:34 +01:00
Joakim Frostegård
2e67f11caf
udp: add experimental io_uring implementation (#131)
* WIP: add udp uring support

* WIP: fix udp uring address parsing

* WIP: udp uring: resubmit recv when needed

* WIP: udp uring: add OutMessageStorage, send swarm responses

* WIP: udp uring: increase ring entries to 1024

* WIP: udp uring: add constants

* WIP: udp uring: use sqpoll, avoid kernel calls

* WIP: udp uring: disable sqpoll

* WIP: udp uring: use VecDeque for local responses

* udp uring: enable setup_coop_taskrun

* udp uring: add RecvMsgStorage

* udp: improve split of uring and mio implementations

* udp uring: clean up

* udp uring: initial ipv6 support

* udp uring: improve helper structs

* udp uring: clean up, use constants for important data

* udp: share create_socket fn between implementations

* udp uring: improve send buffer free index finding

* udp uring: work on SendBuffers.try_add

* udp uring: split into modules

* udp uring: Rename RecvMsgMultiHelper to RecvHelper

* udp uring: improve SendBuffers

* udp uring: fix copyright attribution in buf_ring module

* udp uring: stop always consuming 100% cpu

* udp uring: clean up

* udp uring: add handle_recv_cqe

* udp uring: move local_responses into SocketWorker

* udp uring: move timeout_timespec into SocketWorker

* Update TODO

* udp: make io-uring optional

* Update TODO

* udp uring: enqueue timeout before sends

* udp uring: move likely empty buffer tracking logic into SendBuffers

* udp uring: improve error handling and logging

* udp uring: keep one timeout submitted at a time

* udp uring: update pending_scrape_valid_until

* udp uring: add second timeout for cleaning

* Update TODO

* udp uring: store resubmittable squeue entries in a Vec

* udp uring: add comment, remove a log statement

* Update TODO

* Update TODO

* udp: io_uring: fall back to mio if io_uring support not recent enough

* udp: uring: add bytes_received statistics

* udp: uring: add bytes_sent statistics

* udp: uring: add more statistics

* Update TODO

* udp: uring: improve SendBuffers code

* udp: uring: remove unneeded squeue sync calls

* udp: uring: replace buf_ring impl with one from tokio-uring

* udp: uring: store ring in TLS so it can be used in Drop impls

* udp: uring: store BufRing in SocketWorker

* udp: uring: silence buf_ring dead code warnings, improve comment

* Update TODO

* udp: uring: improve CurrentRing docs, use anonymous struct field

* udp: uring: improve ring setup

* udp: uring: get ipv6 working

* udp: uring: make ring entry count configurable, use more send entries

* udp: uring: log number of pending responses (info level)

* udp: uring: improve comment on send_buffer_entries calculation

* udp: improve config comments

* udp: uring: add to responses stats when they are confirmed as sent

* Update TODO

* udp: uring: enable IoUring setup_submit_all

* Update README
2023-03-07 19:01:37 +01:00
Joakim Frostegård
2abb76d690 Update TODO 2023-02-26 12:35:37 +01:00
Joakim Frostegård
beb8c52fe6 Update TODO 2023-02-25 22:32:34 +01:00
Joakim Frostegård
1372f46e87 Update TODO 2023-02-04 15:38:09 +01:00
Joakim Frostegård
d3e0e46b41 Update TODO 2023-01-03 18:45:22 +01:00
Joakim Frostegård
057b07eaf1 Update TODO 2022-12-21 00:06:38 +01:00
Joakim Frostegård
4342a3387e Update TODO 2022-11-12 16:33:25 +01:00
Joakim Frostegård
99cb28c7f7
Update TODO.md 2022-10-24 11:41:02 +02:00
Joakim Frostegård
2fb7a330bc
Update TODO.md 2022-10-23 21:25:09 +02:00
Joakim Frostegård
6d44280eb3 Update TODO 2022-09-25 12:37:43 +02:00
Joakim Frostegård
3e4bcf022e Update TODO 2022-09-20 21:50:04 +02:00
Joakim Frostegård
4ab6b0af82 Update TODO 2022-08-06 14:56:00 +02:00
Joakim Frostegård
a399629b69 Update TODO 2022-08-01 15:58:48 +02:00
Joakim Frostegård
355f3e04c6 Update ws code comments; update TODO.md 2022-07-19 17:01:07 +02:00
Joakim Frostegård
a62b2033a5 ws: avoid X-Forwarded-For parsing since we only need to know IPv4/IPv6 2022-07-19 16:12:00 +02:00
Joakim Frostegård
3b94b8e588 WIP: ws: parse X-FORWARDED-FOR headers 2022-07-19 00:56:27 +02:00
Joakim Frostegård
064d6fb14b Update TODO 2022-07-18 23:31:18 +02:00
Joakim Frostegård
a16ce91d46 ws: make TLS optional, allow HTTP health checks without TLS only 2022-07-18 23:23:36 +02:00
Joakim Frostegård
720ceacf99 ws: remove peer from all torrent maps when connection is closed 2022-07-05 13:13:53 +02:00
Joakim Frostegård
b06c12e9a5 Update TODO 2022-07-05 11:38:50 +02:00
Joakim Frostegård
cedf0b61ca Exit with error message on unrecognized config keys 2022-07-05 11:26:46 +02:00
Joakim Frostegård
a852b290ca Add cli flag for printing parsed config 2022-07-05 11:15:53 +02:00