Commit graph

102 commits

Author SHA1 Message Date
Joakim Frostegård
c18a59b0cb Use proper workspace path declarations, remove workspace patch section 2022-04-04 12:46:42 +02:00
Joakim Frostegård
d78b0fa31e Bump version to 0.2.0 for all aquatic crates 2022-03-26 11:39:37 +01:00
Joakim Frostegård
90437e23bb Cargo.toml files: add readme keys, remove some exclude keys 2022-03-26 11:39:04 +01:00
Joakim Frostegård
f5b1cd5525 Add command-line option for printing version and commit info 2022-03-24 16:17:17 +01:00
Joakim Frostegård
473276cd46 Switch to rust edition 2021 2021-11-24 18:56:26 +01:00
Joakim Frostegård
32541c5c15 Upgrade hashbrown 2021-08-15 22:29:09 +02:00
Joakim Frostegård
d0e716f80b Run rustfmt, clean up aquatic_http_protocol/Cargo.toml 2021-08-15 22:26:11 +02:00
Joakim Frostegård
fe11ed138a Use (patched) crates.io deps for crates, add some package metadata 2020-09-13 17:30:26 +02:00
Joakim Frostegård
dd19f32a2a aquatic help output: print short protocol descriptions 2020-08-13 04:34:10 +02:00
Joakim Frostegård
9efc1fc66a add aquatic crate with master executable, refactor cli_helpers 2020-08-13 00:13:01 +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
f2ae494902 aquatic: make extract_response_peers generic (for aquatic_ws) 2020-05-08 21:05:17 +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
e0526ac828 aquatic handle_announce_requests: reorder code, remove branch 2020-05-06 00:44:23 +02:00
Joakim Frostegård
f9428801bf aquatic: don't use atomic usizes in torrent state
Doesn't make sense any more, since now a Mutex is used, not
dashmap with RwLock-like functionality
2020-05-06 00:27:16 +02:00
Joakim Frostegård
9e7c27a789 aquatic: use shorter thread names 2020-04-20 17:00:13 +02:00
Joakim Frostegård
352f571c42 Decide to use Apache 2.0 license, add file and update Cargo.toml's 2020-04-20 16:54:43 +02:00
Joakim Frostegård
7ba61ee6b7 aquatic: improve comment for NetworkConfig.socket_recv_buffer_size 2020-04-19 10:34:01 +02:00
Joakim Frostegård
4127cbc7c9 aquatic: handlers: minor syntax and comment improvements 2020-04-14 20:13:12 +02:00
Joakim Frostegård
6fca5cd9d5 aquatic: config: resort to default values for keys not present in file 2020-04-14 17:45:35 +02:00
Joakim Frostegård
f0ec858bef socket workers: add Vec for requests (send together) and responses
Local response vector is used for error responses
2020-04-13 17:13:03 +02:00
Joakim Frostegård
6950726b3c aquatic: actually send error responses from parsing 2020-04-13 16:52:05 +02:00
Joakim Frostegård
c44c5b017f aquatic: announce: fix bug in calculation of number of peers to take 2020-04-13 12:52:58 +02:00
Joakim Frostegård
8f68b3a9a2 aquatic: config: change default settings 2020-04-13 12:50:53 +02:00
Joakim Frostegård
ca52b44389 split connection and torrent mutexes again 2020-04-13 12:01:17 +02:00
Joakim Frostegård
06ff4ad9d0 aquatic: save valid_until Instant in connections and requests
Hopefully prevents strange subtraction overflow error, but
we'll see.
2020-04-12 22:04:42 +02:00
Joakim Frostegård
587096f76f aquatic: give threads names when spawning them 2020-04-12 21:46:48 +02:00
Joakim Frostegård
140aa4b75d aquatic: improve naming of socket workers, request workers 2020-04-12 21:40:38 +02:00
Joakim Frostegård
f8713c09c1 aquatic: handler: put responses in vector, send after releasing lock 2020-04-12 14:54:38 +02:00
Joakim Frostegård
2779b6ec3a aquatic: lock connections and torrents together; optimize handler
Handler: don't stop collecting requests early unless mutex can
be unlocked.
2020-04-12 14:44:34 +02:00
Joakim Frostegård
cbae43e175 aquatic: HandlerConfig: add comment 2020-04-12 13:31:32 +02:00
Joakim Frostegård
ad7a8c46a9 aquatic: config: rename recv_buffer_size to socket_recv_buffer_size 2020-04-12 13:29:21 +02:00
Joakim Frostegård
5430e561f5 aquatic: Config: add fields for max handler request, channel timeout 2020-04-12 13:26:44 +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
f37ba1e52e Use (unbounded) SegQueue instead of ArrayQueue 2020-04-11 20:00:51 +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
9bf17b0ab4 bittorrent_udp: response_to_bytes: return Result<(), io:Error> 2020-04-11 15:03:50 +02:00
Joakim Frostegård
834a8c3fa2 cli_helpers: run_with_cli_and_config: rename function and "f" argument 2020-04-11 14:19:46 +02:00
Joakim Frostegård
688372bdf2 aquatic: announce and scrape handlers: send back error on invalid conn 2020-04-11 14:17:03 +02:00
Joakim Frostegård
fe85901021 bittorrent_udp: add RequestParseError; remove InvalidRequest; other fixes 2020-04-10 15:16:20 +02:00
Joakim Frostegård
8dfd49af0d cli helpers: in run function, take function as argument instead 2020-04-09 17:56:20 +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
Joakim Frostegård
b457df26e3 aquatic annonunce handler: downgrade TorrentMap ref instead of new .get 2020-04-09 11:46:06 +02:00
Joakim Frostegård
32edee9bbb aquatic: add #[inline] to handle_readable_socket and handlers
Also update aquatic_bench comment with new bench results
2020-04-09 10:14:53 +02:00
Joakim Frostegård
2fd732efc6 aquatic: handlers: pass rng's as function arguments 2020-04-09 09:53:18 +02:00
Joakim Frostegård
bd16cdd709 aquatic: event loop: don't preallocate request/response vectors
It's better to just allocate when needed.
2020-04-09 09:34:39 +02:00
Joakim Frostegård
eddd353621 aquatic: when statistics.interval == 0, skip adding to stats atomics 2020-04-08 22:00:52 +02:00
Joakim Frostegård
5d2e4412b3 aquatic: create function in tasks.rs for statistics printing 2020-04-08 21:55:16 +02:00