Joakim Frostegård
6691b77824
aquatic_http_load_test: store connections in a slab::Slab
2020-07-20 16:30:47 +02:00
Joakim Frostegård
da3b2bcd8c
WIP: cleanup aquatic_http_load_test and aquatic_http_protocol
2020-07-20 14:50:19 +02:00
Joakim Frostegård
d1e9d24773
WIP: work on http load test (now partly working) and http protocol
2020-07-20 14:30:36 +02:00
Joakim Frostegård
5b0d364ccf
WIP: start work on porting udp load test to http
2020-07-19 23:03:30 +02:00
Joakim Frostegård
4ac2012a2a
aquatic_http: move protocol module to new crate aquatic_http_protocol
2020-07-19 21:59:31 +02:00
Joakim Frostegård
9df1f0ecc6
aquatic_http: rewrite request parsing, use smartstring
...
Use smartstring in PeerMapKey too.
Improves benchmark speed.
request-from-path:
time: [2.1484 us 2.1530 us 2.1586 us]
change: [-24.246% -23.908% -23.570%] (p = 0.00 < 0.01)
Performance has improved.
2020-07-19 15:38:26 +02:00
Joakim Frostegård
a8e355f22a
aquatic_http: add criterion benchmarks for request from path parsing
...
About 35% improvement by using both memchr methods
2020-07-19 01:58:41 +02:00
Joakim Frostegård
056cd41732
aquatic_http: add memchr version of urldecode, which might be faster
2020-07-18 06:05:13 +02:00
Joakim Frostegård
f94c52da77
aquatic_http: send_response: use itoa and Vec::with_capacity
...
This leads to fewer allocations and possibly better performance.
2020-07-18 03:05:40 +02:00
Joakim Frostegård
8269ae2994
aquatic_http: remove (no longer used) dependency serde_urlencoded
2020-07-05 19:50:52 +02:00
Joakim Frostegård
1dc2f44d9c
restructure aquatic_common_tcp, move more into it from aquatic_http
2020-07-03 00:23:19 +02:00
Joakim Frostegård
82378e71f6
Move things to aquatic_common_tcp
2020-07-02 16:54:27 +02:00
Joakim Frostegård
720596dfb4
move more things from aquatic_http to aquatic_common_tcp
2020-07-02 16:47:33 +02:00
Joakim Frostegård
2e53a2adc1
add aquatic_common_tcp crate, move common functionality there
2020-07-02 16:34:36 +02:00
Joakim Frostegård
6b1f11635b
aquatic_http: bencoded response with content-length
2020-07-02 13:47:37 +02:00
Joakim Frostegård
76079cf66e
WIP: more work on aquatic_http
2020-07-02 00:39:50 +02:00
Joakim Frostegård
404e528616
WIP: start work on http tracker
2020-07-01 18:56:19 +02:00
Joakim Frostegård
3addab07f0
move plot_pareto from aquatic_udp_bench crate into own crate
2020-05-25 19:38:53 +02:00
Joakim Frostegård
2f13e1e1a8
rename crate "cli_helpers" to "aquatic_cli_helpers"
2020-05-25 19:27:22 +02:00
Joakim Frostegård
bc4ada104d
rename crate "bittorrent_udp" to "aquatic_udp_protocol"
2020-05-25 19:21:52 +02:00
Joakim Frostegård
5babd8eda0
aquatic udp load test: use socket2 instead of net2
2020-05-25 18:42:23 +02:00
Joakim Frostegård
96991562e3
aquatic_udp: use socket2 instead of net2
2020-05-25 18:33:07 +02:00
Joakim Frostegård
1ec4745f45
aquatic_ws: use socket2 instead of net2
2020-05-25 18:24:36 +02:00
Joakim Frostegård
bc8916dce4
aquatic_ws: add logging with level configured by config file
2020-05-23 20:16:56 +02:00
Joakim Frostegård
f3bdb6bc2a
aquatic_ws: privilege dropping; cli_helpers: show error context
2020-05-23 17:02:52 +02:00
Joakim Frostegård
7430c23ccc
aquatic_ws: add simple_logger for debugging, need better solution
2020-05-23 14:53:29 +02:00
Joakim Frostegård
0f6d6d4b21
aquatic_ws: use log crate for debug error messages
2020-05-23 14:24:26 +02:00
Joakim Frostegård
526faa9aab
cli_helpers: use anyhow in app fn; aquatic_ws: reorganize error handling
2020-05-23 14:05:50 +02:00
Joakim Frostegård
9a04173f65
Run cargo update
2020-05-17 12:14:59 +02:00
Joakim Frostegård
0bcfffb2bd
aquatic_ws: create HandshakeMachine from ConnectionStage
2020-05-13 19:17:33 +02:00
Joakim Frostegård
de9a32840f
WIP: aquatic_ws: start work on wss (ws with tls)
2020-05-12 18:48:50 +02:00
Joakim Frostegård
761952513f
remove unused dependencies from aquatic_ws; run cargo update
2020-05-11 23:24:50 +02:00
Joakim Frostegård
5c83af9f88
Move some code from aquatic_udp into aquatic_common
2020-05-11 17:06:37 +02:00
Joakim Frostegård
1b8d74e26d
rename aquatic to aquatic_udp, same for bench and load test crates
2020-05-11 16:55:46 +02:00
Joakim Frostegård
5b58db90e3
aquatic_ws: pass on offers to other peers; minor fixes
2020-05-08 21:05:46 +02:00
Joakim Frostegård
4d0c3d309a
aquatic_ws: add tungstenite::Message encode and decode, not tested
2020-05-07 19:34:28 +02:00
Joakim Frostegård
cf75a07a7e
WIP: aquatic_ws: start work on data structures, data flow
2020-05-07 16:49:28 +02:00
Joakim Frostegård
1080652282
WIP: start work on webtorrent support
2020-05-07 01:08:29 +02:00
Joakim Frostegård
6110017980
aquatic: add setting for dropping privileges after opening sockets
2020-05-06 15:54:03 +02:00
Joakim Frostegård
c8ce374736
Run cargo update
2020-04-28 13:25:59 +02:00
Joakim Frostegård
f6ed47fec7
add aquatic_load_test for benchmarking aquatic over the network
2020-04-19 10:21:12 +02:00
Joakim Frostegård
f4ca9c2795
aquatic_bench: start work on fixing it: create new connect bencher
2020-04-13 01:34:05 +02:00
Joakim Frostegård
e61c961126
Use hashbrown hashmap directly for faster hash (ahash)
2020-04-12 13:19:07 +02:00
Joakim Frostegård
558ddadf28
Remove DashMap, use parking_lot::Mutex<HashMap> instead
2020-04-11 22:07:09 +02:00
Joakim Frostegård
70cc193522
Use crossbeam channel insteaf of SegQueue
...
Reduces overutilization of CPU greatly
2020-04-11 21:11:25 +02:00
Joakim Frostegård
3527952242
start work on using seperate threads for sockets and handlers
2020-04-11 19:35:15 +02:00
Joakim Frostegård
8d7cbb7926
aquatic_bench: test multiple threads at once, with disappointing results
...
DashMap doesn't scale as well as I had hoped. Only the scrape
handler performed somewhat better with more threads, since it
doesn't exlusively lock the torrent map. The announce and connect
handlers, however, gained barely nothing from more threads.
2020-04-11 17:54:23 +02:00
Joakim Frostegård
9a1143ffac
aquatic_bench: enable loading configuration from file
2020-04-11 14:31:21 +02:00
Joakim Frostegård
c964f05e84
bittorrent_udp: add quickcheck tests for response byte conversion
2020-04-10 03:30:53 +02:00
Joakim Frostegård
ac52668a3d
add crate cli_helpers with option and config parsing; use in aquatic
...
Putting cli functionality into its own crate will allow using it
from aquatic_bench and possibly other programs.
2020-04-09 16:55:40 +02:00