Commit graph

1894 commits

Author SHA1 Message Date
Joakim Frostegård
cb39eb69c8 udp: reorder code in swarm storage 2023-12-10 12:13:56 +01:00
Joakim Frostegård
a873dddb89 Remove unused aquatic_udp_bench 2023-12-10 12:09:53 +01:00
Joakim Frostegård
0c4140165b udp: reuse response channel mem, add backpressure, faster peer extract 2023-12-10 12:07:38 +01:00
Joakim Frostegård
0e12dd1b13 use zerocopy in udp protocol, easy running transfer CI locally 2023-12-02 12:24:41 +01:00
Joakim Frostegård
af16a9e682 udp: fix io_uring soundness issues 2023-11-23 18:52:13 +01:00
Joakim Frostegård
e2a321196b
Merge pull request #158 from greatest-ape/fixes-2
http: split swarm worker module into submodules
2023-11-19 09:43:10 +01:00
Joakim Frostegård
7cfcf5ea55 http: split swarm worker module into submodules 2023-11-18 00:29:15 +01:00
Joakim Frostegård
3f2a87b10f
Merge pull request #157 from greatest-ape/fixes-1
http: allow disabling TLS, allow reverse proxies, general fixes; improve ws code; cargo update
2023-11-17 18:33:40 +01:00
Joakim Frostegård
2520b2cbbd Fix GitHub CI build 2023-11-17 18:29:34 +01:00
Joakim Frostegård
d7e9b688d9 Run cargo update
Removing ahash v0.7.6
    Removing ahash v0.8.3
      Adding ahash v0.7.7
      Adding ahash v0.8.6
    Updating base64 v0.21.4 -> v0.21.5
    Updating clap v4.4.6 -> v4.4.8
    Updating clap_builder v4.4.6 -> v4.4.8
    Updating clap_lex v0.5.1 -> v0.6.0
    Updating cpufeatures v0.2.9 -> v0.2.11
    Updating errno v0.3.5 -> v0.3.7
    Updating futures v0.3.28 -> v0.3.29
    Updating futures-channel v0.3.28 -> v0.3.29
    Updating futures-core v0.3.28 -> v0.3.29
    Updating futures-executor v0.3.28 -> v0.3.29
    Updating futures-io v0.3.28 -> v0.3.29
    Updating futures-macro v0.3.28 -> v0.3.29
    Updating futures-sink v0.3.28 -> v0.3.29
    Updating futures-task v0.3.28 -> v0.3.29
    Updating futures-util v0.3.28 -> v0.3.29
    Updating getrandom v0.2.10 -> v0.2.11
    Updating hashbrown v0.14.1 -> v0.14.2
    Updating hdrhistogram v7.5.2 -> v7.5.3
    Updating http v0.2.9 -> v0.2.11
    Updating indexmap v2.0.2 -> v2.1.0
    Updating ipnet v2.8.0 -> v2.9.0
    Updating js-sys v0.3.64 -> v0.3.65
    Updating libc v0.2.149 -> v0.2.150
    Updating linux-raw-sys v0.4.10 -> v0.4.11
    Updating mio v0.8.8 -> v0.8.9
    Updating portable-atomic v1.4.3 -> v1.5.1
    Updating redox_syscall v0.3.5 -> v0.4.1
    Updating ring v0.16.20 -> v0.17.5
    Updating rustix v0.38.19 -> v0.38.24
    Updating rustls v0.21.7 -> v0.21.9
    Updating rustls-pemfile v1.0.3 -> v1.0.4
    Updating rustls-webpki v0.101.6 -> v0.101.7
    Updating sct v0.7.0 -> v0.7.1
    Updating serde v1.0.189 -> v1.0.192
    Updating serde_derive v1.0.189 -> v1.0.192
    Updating serde_json v1.0.107 -> v1.0.108
    Updating smallvec v1.11.1 -> v1.11.2
    Removing socket2 v0.4.9
    Removing socket2 v0.5.4
      Adding socket2 v0.4.10
      Adding socket2 v0.5.5
    Removing spin v0.5.2
    Updating syn v2.0.38 -> v2.0.39
    Updating tempfile v3.8.0 -> v3.8.1
    Updating thiserror v1.0.49 -> v1.0.50
    Updating thiserror-impl v1.0.49 -> v1.0.50
    Updating tokio v1.33.0 -> v1.34.0
    Updating tracing v0.1.39 -> v0.1.40
    Updating untrusted v0.7.1 -> v0.9.0
    Updating wasm-bindgen v0.2.87 -> v0.2.88
    Updating wasm-bindgen-backend v0.2.87 -> v0.2.88
    Updating wasm-bindgen-macro v0.2.87 -> v0.2.88
    Updating wasm-bindgen-macro-support v0.2.87 -> v0.2.88
    Updating wasm-bindgen-shared v0.2.87 -> v0.2.88
    Updating web-sys v0.3.64 -> v0.3.65
      Adding zerocopy v0.7.26
      Adding zerocopy-derive v0.7.26
2023-11-17 18:22:00 +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
7b2a7a4f46 ws: improve socket worker connection code 2023-11-17 00:15:41 +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
af9d5a55f6
Merge pull request #154 from greatest-ape/work-2023-10-30
improve ws protocol struct naming and documentation; update TODO
2023-10-30 22:44:06 +01:00
Joakim Frostegård
dadb227c63 Update TODO 2023-10-30 20:19:51 +01:00
Joakim Frostegård
577161e540 ws protocol: simplify code for AnnounceAction and ScrapeAction 2023-10-30 19:49:45 +01:00
Joakim Frostegård
d94936a50b ws: require offer/answer sdp field to be String, fix related code 2023-10-30 19:37:25 +01:00
Joakim Frostegård
c37bf89650 ws: include "type" field in RtcOffer and RtcAnswer 2023-10-30 19:34:24 +01:00
Joakim Frostegård
0789f7ec3b improve ws protocol struct naming and documentation 2023-10-30 19:13:46 +01:00
Joakim Frostegård
b473bb6fba
Merge pull request #152 from greatest-ape/work-2023-10-24
ws & http: reload tls config on SIGUSR1
2023-10-24 21:40:54 +02:00
Joakim Frostegård
0d83bd51ee ws: skip updating tls cert if file data same as currently loaded 2023-10-24 20:42:18 +02:00
Joakim Frostegård
78645fe658 ws: auto-close connections after grace period when updating tls config 2023-10-24 20:23:30 +02:00
Joakim Frostegård
99647a323a http: reload tls config on SIGUSR1 2023-10-24 18:44:49 +02:00
Joakim Frostegård
6a23ef9103 ws: reload tls config on SIGUSR1 2023-10-24 18:36:56 +02:00
Joakim Frostegård
c5c995bb80
Split README into separate files (#150)
* Create a separate udp README file

* Split README into separate files for all three implementations

* Minor README fixes
2023-10-19 19:59:11 +02:00
Joakim Frostegård
891ad71751
Merge pull request #149 from greatest-ape/work-2023-10-18
Update dependencies; move all crates to new "crates" dir
2023-10-19 19:16:41 +02:00
Joakim Frostegård
9b032f7e24 Move all crates to new crates dir 2023-10-18 23:53:41 +02:00
Joakim Frostegård
3835da22ac ws: update simd-json to v0.12 2023-10-18 23:24:53 +02:00
Joakim Frostegård
c2f7b6ed92 ws: upgrade tungstenite 2023-10-18 23:11:06 +02:00
Joakim Frostegård
1667339ee5 Run cargo update
Updating aho-corasick v1.0.4 -> v1.1.2
    Updating anstyle v1.0.2 -> v1.0.4
    Updating base64 v0.21.3 -> v0.21.4
    Updating bitflags v2.4.0 -> v2.4.1
    Updating blake3 v1.4.1 -> v1.5.0
    Updating bumpalo v3.13.0 -> v3.14.0
    Updating byteorder v1.4.3 -> v1.5.0
    Updating bytes v1.4.0 -> v1.5.0
    Updating clap v4.4.1 -> v4.4.6
    Updating clap_builder v4.4.1 -> v4.4.6
    Updating deranged v0.3.8 -> v0.3.9
    Updating errno v0.3.2 -> v0.3.5
    Updating fastrand v2.0.0 -> v2.0.1
    Updating flate2 v1.0.27 -> v1.0.28
    Updating git-testament v0.2.4 -> v0.2.5
    Updating git-testament-derive v0.1.14 -> v0.2.0
    Updating hashbrown v0.14.0 -> v0.14.1
    Updating hermit-abi v0.3.2 -> v0.3.3
    Updating indexmap v2.0.0 -> v2.0.2
    Updating indicatif v0.17.6 -> v0.17.7
    Updating io-uring v0.6.1 -> v0.6.2
    Updating libc v0.2.147 -> v0.2.149
    Updating libm v0.2.7 -> v0.2.8
    Updating libmimalloc-sys v0.1.34 -> v0.1.35
    Updating linux-raw-sys v0.4.5 -> v0.4.10
    Updating lock_api v0.4.10 -> v0.4.11
    Updating memchr v2.6.0 -> v2.6.4
    Updating mimalloc v0.1.38 -> v0.1.39
    Removing no-std-compat v0.4.1
    Updating num-traits v0.2.16 -> v0.2.17
    Updating object v0.32.0 -> v0.32.1
    Updating ordered-float v3.9.1 -> v3.9.2
    Updating os_str_bytes v6.5.1 -> v6.6.1
    Updating parking v2.1.0 -> v2.2.0
      Adding powerfmt v0.2.0
    Updating proc-macro2 v1.0.66 -> v1.0.69
    Updating rayon v1.7.0 -> v1.8.0
    Updating rayon-core v1.11.0 -> v1.12.0
    Updating regex v1.9.4 -> v1.10.2
    Updating regex-automata v0.3.7 -> v0.4.3
    Updating regex-syntax v0.7.5 -> v0.8.2
    Updating rustix v0.38.9 -> v0.38.19
    Updating rustls-webpki v0.101.4 -> v0.101.6
    Updating serde v1.0.188 -> v1.0.189
    Updating serde_bencode v0.2.3 -> v0.2.4
    Updating serde_derive v1.0.188 -> v1.0.189
    Updating serde_json v1.0.105 -> v1.0.107
    Updating sha1 v0.10.5 -> v0.10.6
    Updating simd-json v0.10.6 -> v0.10.7
    Updating smallvec v1.11.0 -> v1.11.1
    Updating socket2 v0.5.3 -> v0.5.4
    Removing subtle v2.5.0
    Updating syn v2.0.29 -> v2.0.38
    Updating thiserror v1.0.47 -> v1.0.49
    Updating thiserror-impl v1.0.47 -> v1.0.49
    Updating time v0.3.28 -> v0.3.30
    Updating time-core v0.1.1 -> v0.1.2
    Updating time-macros v0.2.14 -> v0.2.15
    Updating tokio v1.32.0 -> v1.33.0
    Updating tracing v0.1.37 -> v0.1.39
    Updating tracing-attributes v0.1.26 -> v0.1.27
    Updating tracing-core v0.1.31 -> v0.1.32
    Updating typenum v1.16.0 -> v1.17.0
    Updating unicode-ident v1.0.11 -> v1.0.12
    Updating unicode-width v0.1.10 -> v0.1.11
    Updating waker-fn v1.1.0 -> v1.1.1
    Updating walkdir v2.3.3 -> v2.4.0
    Updating winapi-util v0.1.5 -> v0.1.6
2023-10-18 22:55:01 +02:00
Joakim Frostegård
bf6e686ef2
Merge pull request #147 from greatest-ape/work-2023-08-30
common: make extract_response_peers code more idiomatic
2023-08-31 14:11:16 +02:00
Joakim Frostegård
abbd008d7e common: make extract_response_peers code more idiomatic 2023-08-30 01:15:37 +02:00
Joakim Frostegård
418b70b0fd
Merge pull request #146 from greatest-ape/work-2023-08-28
update some dependencies, improve udp invalid connection id integration test, clean up
2023-08-29 00:05:11 +02:00
Joakim Frostegård
c9ae2e6830 README: mention that udp io_uring implementation might be unsound 2023-08-28 23:58:12 +02:00
Joakim Frostegård
cdc817cbdf Update TODO 2023-08-28 23:55:16 +02:00
Joakim Frostegård
2e53c9a61f Remove non-functioning aquatic_ws.Dockerfile 2023-08-28 23:51:24 +02:00
Joakim Frostegård
9c8980a673 Remove unused/obsolete scripts 2023-08-28 23:39:30 +02:00
Joakim Frostegård
6c8abceecd Run cargo update
Updating clap v4.4.0 -> v4.4.1
    Updating clap_builder v4.4.0 -> v4.4.1
    Updating memchr v2.5.0 -> v2.6.0
    Updating nix v0.26.2 -> v0.26.4
    Updating regex v1.9.3 -> v1.9.4
    Updating regex-automata v0.3.6 -> v0.3.7
    Updating regex-syntax v0.7.4 -> v0.7.5
    Updating rustls v0.21.6 -> v0.21.7
    Updating time v0.3.27 -> v0.3.28
    Updating time-macros v0.2.13 -> v0.2.14
    Updating url v2.4.0 -> v2.4.1
2023-08-28 23:37:09 +02:00
Joakim Frostegård
fe8fce94ce udp: update constant_time_eq to v0.3.0 2023-08-28 23:36:25 +02:00
Joakim Frostegård
227bf6163c udp: invalid connection id integration test: test scrape request too 2023-08-28 23:33:09 +02:00
Joakim Frostegård
15051ec8f1
Merge pull request #145 from greatest-ape/work-2023-08-27
udp: add integration tests
2023-08-27 19:24:45 +02:00
Joakim Frostegård
e5a986eeec udp: split integration tests into separate files 2023-08-27 19:17:09 +02:00
Joakim Frostegård
10cd6f9a38 udp: integration: add access list tests 2023-08-27 19:04:43 +02:00
Joakim Frostegård
b2f2ecf5ef udp: integration: improve invalid connection id test 2023-08-27 18:36:54 +02:00
Joakim Frostegård
48e383b6a9 udp: integration: add test for invalid connection id, refactor 2023-08-27 18:20:38 +02:00
Joakim Frostegård
589d45a05d udp: integration test: test scrape too, refactor 2023-08-27 17:54:26 +02:00
Joakim Frostegård
20eef8677d udp: add integration test 2023-08-27 12:17:51 +02:00
Joakim Frostegård
2101d31144
Merge pull request #144 from greatest-ape/work-2023-08-26
improve extract_response_peers; run cargo update
2023-08-26 16:55:31 +02:00
Joakim Frostegård
ddbb5a4d9a common: improve test_extract_response_peers 2023-08-26 16:18:20 +02:00
Joakim Frostegård
271f1450f5 Run cargo update
Updating addr2line v0.20.0 -> v0.21.0
    Removing aho-corasick v0.7.20
    Removing aho-corasick v1.0.2
      Adding aho-corasick v1.0.4
    Updating anstyle v1.0.1 -> v1.0.2
    Updating anyhow v1.0.72 -> v1.0.75
    Updating backtrace v0.3.68 -> v0.3.69
    Updating base64 v0.21.2 -> v0.21.3
    Updating bitflags v2.3.3 -> v2.4.0
    Updating cc v1.0.79 -> v1.0.83
    Updating clap v4.3.19 -> v4.4.0
    Updating clap_builder v4.3.19 -> v4.4.0
    Updating clap_lex v0.5.0 -> v0.5.1
      Adding deranged v0.3.8
    Updating flate2 v1.0.26 -> v1.0.27
    Updating gimli v0.27.3 -> v0.28.0
 Downgrading hashbrown v0.13.2 -> v0.13.1
    Updating httpdate v1.0.2 -> v1.0.3
    Updating indicatif v0.17.5 -> v0.17.6
    Updating intrusive-collections v0.9.5 -> v0.9.6
    Updating io-uring v0.6.0 -> v0.6.1
    Updating libmimalloc-sys v0.1.33 -> v0.1.34
    Updating linux-raw-sys v0.4.3 -> v0.4.5
    Updating log v0.4.19 -> v0.4.20
    Removing memoffset v0.8.0
    Updating metrics-util v0.15.0 -> v0.15.1
    Updating mimalloc v0.1.37 -> v0.1.38
    Updating object v0.31.1 -> v0.32.0
    Updating ordered-float v3.7.0 -> v3.9.1
    Updating pin-project v1.1.2 -> v1.1.3
    Updating pin-project-internal v1.1.2 -> v1.1.3
    Updating pin-project-lite v0.2.10 -> v0.2.13
    Updating portable-atomic v1.4.2 -> v1.4.3
    Updating quote v1.0.32 -> v1.0.33
    Updating regex v1.9.1 -> v1.9.3
    Updating regex-automata v0.3.4 -> v0.3.6
    Updating rustix v0.38.4 -> v0.38.9
    Updating rustls v0.21.5 -> v0.21.6
    Updating rustls-webpki v0.101.2 -> v0.101.4
    Updating serde v1.0.178 -> v1.0.188
    Updating serde_derive v1.0.178 -> v1.0.188
    Updating serde_json v1.0.104 -> v1.0.105
    Updating simd-json v0.10.4 -> v0.10.6
    Updating slab v0.4.8 -> v0.4.9
    Updating syn v2.0.27 -> v2.0.29
    Updating thiserror v1.0.44 -> v1.0.47
    Updating thiserror-impl v1.0.44 -> v1.0.47
    Updating time v0.3.23 -> v0.3.27
    Updating time-macros v0.2.10 -> v0.2.13
    Updating tokio v1.29.1 -> v1.32.0
    Updating windows-targets v0.48.1 -> v0.48.5
    Updating windows_aarch64_gnullvm v0.48.0 -> v0.48.5
    Updating windows_aarch64_msvc v0.48.0 -> v0.48.5
    Updating windows_i686_gnu v0.48.0 -> v0.48.5
    Updating windows_i686_msvc v0.48.0 -> v0.48.5
    Updating windows_x86_64_gnu v0.48.0 -> v0.48.5
    Updating windows_x86_64_gnullvm v0.48.0 -> v0.48.5
    Updating windows_x86_64_msvc v0.48.0 -> v0.48.5
2023-08-26 15:48:02 +02:00