All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- madsim: Add serde API to
HashMap
. - madsim-norandom: A preview library for intercepting libc
getrandom
.
- Breaking: Change the way to enable simulation:
#[cfg(feature = "sim")]
->#[cfg(madsim)]
.
- Lock version on madsim dependencies to prevent API broken.
- Add a new crate
madsim-tokio
for tokio simulation. - madsim/sim: Add
time::interval
andtask::yield_now
. - madsim/sim: Complete methods for
Sleep
,Elapsed
,JoinError
andJoinHandle
. - madsim-tonic: Add
Server::layer
but don't implement it.
- Breaking: madsim: Switch
JoinHandle
to tokio style which won't cancel task on drop. - madsim-macros: Improve error message on panic in simulation.
- madsim: Fix TCP performance issue by setting NODELAY.
TODO
- A real world backend.
- Fix deadlock on M1 macOS: add epsilon on time increasing
- API to get the local socket address.
- Deterministic check on test.
- Remove default time limit (300s) on test.
- Improve error message on context missing.
- Fix double panic in the executor.
- Fix deterministic in
time::timeout
.
- Deterministic async runtime.
- Basic simulated network and file system.