coyote-workshop
shadow
coyote-workshop | shadow | |
---|---|---|
1 | 11 | |
7 | 1,352 | |
- | 1.0% | |
10.0 | 9.8 | |
almost 2 years ago | 10 days ago | |
C# | Rust | |
MIT License | GNU General Public License v3.0 or later |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
coyote-workshop
-
Turmoil, a framework for developing and testing distributed systems
My team used Coyote to test their distributed service against network race conditions. It requires a little bit of setup to ensure all components that typically run on separate machines can run in a single process, and inter-process communication happens through interfaces that can be stubbed out during testing.
I designed a series of workshops to teach these ideas internally at Microsoft. You can find the source code used in the workshop at https://github.com/microsoft/coyote-workshop - the repo can use better README files but sharing it nonetheless in case the setup helps inspire your own use of Coyote.
shadow
-
Turmoil, a framework for developing and testing distributed systems
Cool, will be interested to see how this develops! tokio's loom framework has been a big help in testing some tricky concurrency code I've worked on.
Folks interested in this space might also be interested in the system I spend most of my time working on: Shadow. It also performs deterministic simulation of a network of hosts, but it intercepts network and system interactions at the syscall level via seccomp. As such it can work with binaries compiled from ~any language, usually without any code modification or special compilation. https://shadow.github.io/
-
I reinvented another wheel, linux threads.
Nice writeup! I've also had to dig a bit into this area in my work on shadow.
-
Shadow Simulation Developer
It is no longer active. If you are asking about Shadow, check out https://shadow.github.io
-
How to avoid bounds checks in Rust (without unsafe!)
I do share this hesitation. I think for simple cases iterators are usually fine, but I've definitely run into cases where an iterator adapter caused unexpected performance problems. e.g. https://github.com/shadow/shadow/pull/2543
-
Sending signals to Unix process groups
Yes. Though I'm not sure I see the connection to the OP...?
The example I'm most familiar with, because I work on it, is Shadow. We used ptrace for a bit but now use seccomp.
https://github.com/shadow/shadow/
- Shadow Simulator โ run real applications over a simulated Internet topology
-
Shadow Simlulator โ run real applications over a simulated Internet topology
For anyone interested in following current development on Shadow, we've been publishing a series of updates. Most recent: https://github.com/shadow/shadow/discussions/1274
The previous update has links back to the whole series; I stopped including it in the most-recent update since it was getting a bit cumbersome: https://github.com/shadow/shadow/discussions/1060
What are some alternatives?
loom - Concurrency permutation testing tool for Rust.
mininet - Emulator for rapid prototyping of Software Defined Networks
fast-caspaxos - Fast CASPaxos: Fast Paxos optimizations applies to CASPaxos for 1RTT multi-leader commit
tor - unofficial git repo -- report bugs/issues/pull requests on https://gitlab.torproject.org/ --
shadow-plugin-tor - A Shadow plug-in that runs the Tor anonymity software
rebop - Fast stochastic simulator for chemical reaction networks
testground - ๐งช A platform for testing, benchmarking, and simulating distributed and p2p systems at scale.
core - Common Open Research Emulator
simuwaerm - A simple heat simulation in pure Rust.
dettrace - A determinizing tracer using Ptrace
imunes - Integrated Multiprotocol Network Emulator/Simulator