Joakim Frostegård
228511b3aa
aquatic_http: replace flume with crossbeam; clean connections less often
2020-07-24 20:36:46 +02:00
Joakim Frostegård
f1f708465a
remove aquatic_common_tcp crate, move contents into aquatic_http
...
It doesn't make a lot of sense to make a separate crate for
the few things here. I don't really want tight coupling between
the crates anyway, since it impedes making changes in them
and makes understanding them more difficult.
2020-07-21 23:01:34 +02:00
Joakim Frostegård
52eeda2f2c
aquatic_udp_bench: bump indicatif version
2020-07-21 01:03:23 +02:00
Joakim Frostegård
f2db4a43b9
Update lots of dependencies
2020-07-21 00:58:56 +02:00
Joakim Frostegård
95e25710dc
aquatic_http: move request parsing into protocol crate
2020-07-20 20:13:56 +02:00
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