Commit graph

57 commits

Author SHA1 Message Date
Imbris
283306780d Suppress two clippy lints and revert some of their changes from the last
toolchain update.

The lints are `collapsible_match` and `manual_option_zip`.

`collapsible_match` made the match arms inconsistent and made them
reliant on being followed by a no-op wildcard arm.

`manual_option_zip` has a bug in our current version where it suggests
transforming conditional calls into unconditional calls.
2026-07-25 19:12:38 -04:00
Marcel Märtens
5d61f74e6b cargo clippy in test 2026-06-14 17:45:15 +02:00
Marcel Märtens
18b38d93ca cargo clippy fix 2026-06-14 14:39:42 +02:00
Youser Nayme
7a375b792a
Upgrade rand and rand_chacha from 0.9 to 0.10 2026-02-23 19:38:41 +00:00
Youser Nayme
63c5d604d0
Tentatively remove package.authors fields from all manifests
Context: After much ado, in 2021 according to RFC 3052 the authors
field was made optional, with the possibility of deprecation being held
open for the future. After four years, it doesn't seem people have come
much back around to the feature; in pull #15068 on the cargo repository
from January of this year, it was finally marked as deprecated in the
documentation.
Most of these kinds of attributes are pretty pointless for us anyways,
since we don't publish to crates.io, and the reasons for making it
optional/deprecated mostly apply to us as well. It just doesn't seem
very useful.
2025-12-23 19:03:24 +00:00
Youser Nayme
3bd2a247a3
Set license for workspace and all members 2025-12-20 21:02:44 +00:00
Marcel Märtens
4a65546454 run cargo fix after toolchain upgrade 2025-09-08 19:03:28 +02:00
Marcel Märtens
87c6316a81 define the edition in the workspace and reorder the Cargo.toml to be more similar 2025-09-06 01:47:17 +02:00
Marcel Märtens
74bf0cacdc update rust edition to 2024 and fix some final r#gen keyword renamings 2025-09-06 01:47:17 +02:00
Youser Nayme
ccbed630fb
Low-effort crate updates
- ordered-float from 4 to 5
- strum from 0.26 to 0.27
- profiling from 1.0.16 to 1.0.17 and tracing-tracy from 0.11.3 to 0.11.4
- toml from 0.8 to 0.9
- socket2 from 0.5 to 0.6
- indicatif from 0.17 to 0.18
- crossterm from 0.28 to 0.29
- fluent from 0.16 to 0.17, fluent-bundle from 0.15 to 0.16, and
  fluent-syntax from 0.11 to 0.12

Also moved criterion to workspace dependencies, and removed
assets_manager from voxygen since it doesn't appear to be used.
2025-09-05 10:58:25 +00:00
Marcel Märtens
5beb46c88b also update rand in tests/benches 2025-09-05 01:03:36 +02:00
Marcel Märtens
2b3e8352b2 update rand to 0.9:
This contains a lot of renaming, in rand, thread_rng got changed to rng and gen got changed to random because of the upcomming rust2024 edition.
Additionally the traits are changing.
This is highly necessary for a toolchain update
2025-09-04 22:12:14 +02:00
Marcel Märtens
190e148bdc consequently use prometheus 0.14 and fix clippy 2025-05-05 22:19:58 +02:00
Imbris
e2ed4e8be5 Add workspace lints table 2025-02-26 20:50:24 -05:00
Marcel Märtens
aa08ff6b1c > thread 'tokio-server-3' panicked at network/protocol/src/prio.rs:127:41:
attempt to subtract with overflow
This can happen when cur_bytes get increased in 132, we break the inner loop, but the next iteration on the outer loop will have `cur_bytes` > `total_bytes`.
This check is only active on dev instances, thus hard to catch.
With breaking the outer loop, we might "starve" a few streams when 2 streams share the same prio but there is only enough bandwidth to feed the first.
However: this only becomes an issue when this happens for a longer time. Additionally therre is the `guaranteed_bandwidth` to take care of this issue.
An alternative would be to move the check from line 133-135 out of the `for` loop, which would result in sending a few bytes to much, but be `fair` inside a single prio level.
2025-02-19 21:56:43 +01:00
Marcel Märtens
fa25f6a4c7 update toolchain - happy valentines day edition 2025-02-16 16:13:32 +01:00
crabman
10f567a816
Replace #[allow(..)] with #[expect(..)] where possible 2025-01-23 13:01:23 +01:00
Isse
fae849e951
Toolchain update 2025-01-23 13:01:20 +01:00
Christof Petig
f56e1d84b5 Use wasmtime to execute wasm components as veloren plugins 2024-02-10 09:35:04 +00:00
Marcel Märtens
b0bef3ebbf update few dependencies 2024-02-06 19:11:10 +01:00
Marcel Märtens
394c8892bb update toolchain to nightly-2023-09-28 2023-10-05 22:00:48 +02:00
Marcel Märtens
b4216ec634 get rid of old criterion 2023-08-27 19:17:04 +02:00
Marcel Märtens
3a19669d53 use workspace dependencies to make our life easier maintaining them :) 2023-05-10 18:16:25 +02:00
Imbris
af0d0f3ea4 Second attempt (success) 2023-05-06 00:30:54 -04:00
Marcel Märtens
4be1e82ba9 update further dependencies 2023-05-04 23:42:05 +02:00
Marcel Märtens
054f4f9453 update veloren deps 2023-05-04 11:58:43 +02:00
Sam
e819cd2309 Updated hashbrown, removed some to_owned calls in handling recently unequipped items 2023-04-19 18:43:40 -04:00
Joshua Yanovski
986d104faa Update Rust toolchain. 2022-09-08 15:43:53 -07:00
tygyh
120ee6b6c0 Fix typos 2022-07-15 18:59:37 +02:00
tygyh
5e5698249b Remove unnecessarily qualified paths 2022-07-15 14:49:46 +02:00
Marcel Märtens
754bf32580 add a check to break the sending loop if the current bytes got greater than the total bytes.
We calculate a max bandwidth, but due to framing the packages, i think its possible for the current_bytes to get a few bytes over the actuall planed bandwidth. which prob isn't that bad/unfair
2022-06-08 09:45:25 +02:00
Marcel Märtens
e194a2e334 export unterlying errors via network crate, to generate more detailed logs 2022-05-23 02:00:56 +02:00
Marcel Märtens
a0a0e36246 update network dependencies 2022-04-02 15:44:07 +02:00
juliancoffee
fba89517de Move Veloren to 2021 edition 2022-01-26 16:46:40 +02:00
Marcel Märtens
e29ede7c97 updating dependencies,
cannot update the following dependencies:
 - vek: Sharps SIMD isnt upstream
 - tracing-subscriber: MakeWriter was adjusted and i was to lazy to fiddle with lifetimes,
 - refinery, rustsql: we have a custom refinery version which is incompatible with newer rustsql
 - equi + egui_winit + egui_wgpu_backend: i tried it in this commit but it turned out that they dependo n wgpu which we cant update
 - wgpu: cant update due new version doesnt support DX11

Got quinn updated which now require some dependencies to be explicit.
2021-11-20 20:17:49 +01:00
Marcel Märtens
2a82405df2 update toolchain to nightly-2021-09-24 2021-09-24 23:18:07 +02:00
Marcel Märtens
88685cc016 update crates 2021-09-20 14:39:01 +02:00
Marcel Märtens
9b3b21f368 fix clippy warnings 2021-07-12 12:09:09 +02:00
Imbris
48ebb10d50 Update toolchain 2021-05-31 20:44:57 -04:00
Marcel Märtens
1ead240ad2 switch network/protocol to hashbrown (5% perf increase) 2021-04-29 19:12:57 +02:00
Marcel Märtens
653fb065e0 extract protocol specific listen code from scheduler and move it to channel.rs 2021-04-29 17:51:52 +02:00
Marcel Märtens
4afadf57dc move connect code to channel and get rid of unwraps 2021-04-29 15:58:43 +02:00
Marcel Märtens
95b186e29a QuicSink and QuicDrain do work now.
When local SendProtocol is opening a Stream, it will send a empty message to QuicDrain which will then know that its time to open a quic stream.
It will open a QuicStream and send its SID over to remote.
The RecvStream will be send to local QuicSink
RemoteRecv will notice a new BiStream was opened and read its Sid. It will now start listening on it. while remote main will get the information that a stream was opened and will notice the frontend.
in participant remote Recv is synced with remote send (without triggering a empty message!).
RemoteRecv Sink will send the sendstream to RemoteSend Drain and it will be used when a first message is send on this stream.
2021-04-29 15:58:39 +02:00
Marcel Märtens
760c382ed9 protocoladdr change for listen and connect
(remove a loop in quic protocol which wasnt a actual loop)
2021-04-29 15:58:34 +02:00
Marcel Märtens
9f0aceba4c work on getting quic in the network 2021-04-29 15:58:26 +02:00
Marcel Märtens
383482a36e Quic: We had the followuing problem:
- locally we open a stream, our local Drain is sending OpenStream
 - remote Sink will know this and notify remote Drain
 - remote side sends a message
 - local sink does not know about the Stream. as there is (and CANT) be a wat to notify local Sink from local Drain (it could introduce race conditions).

One of the possible solutions was, that the remote drain will copy the OpenStream Msg ON the Quic::stream before first data is send. This would work but is complicated.

Instead we now just mark such streams as "potentially open" and we listen for the first DataHeader to get it's SID.

add support for unreliable messages in quic protocol, benchmarks
2021-04-29 15:58:23 +02:00
Marcel Märtens
9638581d09 ITFrame::read_frame now throws an error when the frame_no is invalid.
This will be catched by the respective protocols, e.g. tcp and cause a violation
2021-04-13 00:13:08 +02:00
Marcel Märtens
4fed9dab83 Have a clear error for when the I/O closes and when some protocol is violated. this should help find the rootcause of a bug.
If its Closed it looks like the TCP connection got dropped/cut off (e.g. OS, Wifi).
If its Violated we for sure know the cause is the messages send/recv in a wrong way
2021-04-13 00:12:20 +02:00
Marcel Märtens
aea52d8b54 implement Upload Bandwidth prediction.
Its available to `api` and `metrics` and can be used to slow down msg send in veloren.
It uses a tokio::watch for now, as i plan to have a watch job in the scheduler that recalculates prio on change.
Also cleaning up participant metrics after a disconnect
2021-03-26 08:58:03 +01:00
Marcel Märtens
8dccc21125 preparation for multiple-channel participants.
When a stream is opened we are searching for the best (currently) available channel.
The stream will then be keept on that channel.
Adjusted the rest of the algorithms that they now respect this rule.
improved a HashMap for Pids to be based on a Vec. Also using this for Sid -> Cid relation which is more performance critical
WARN: our current send()? error handling allows it for some close_stream messages to get lost.
2021-03-26 08:57:50 +01:00