11 releases (breaking)

0.12.0 Sep 12, 2024
0.11.0 Jul 30, 2024
0.10.0 Jul 3, 2024
0.6.0 Mar 29, 2024

#763 in Rust patterns

45 downloads per month
Used in 8 crates (via maelstrom-worker)

MIT/Apache

69KB
2K SLoC

Maelstrom Worker Child

This is a small library that is only intended to be used by the maelstrom-worker. It is its own library so it can be no_std and we can ensure that it doesn't take any undesired dependencies.

This library is intended to be used in the child processes after a clone syscall in potentially-multithreaded processes. The child process in this case is very limited in what it can do without potentially blocking forever. For example, allocations are disallowed. This library just executes a series of syscalls, the last of which should be execve.

For more information, see the Maelstrom project on GitHub.


lib.rs:

Helper library for maelstrom-worker.

This code is run in the child process after the call to clone. In this environment, since the cloning process is multi-threaded, there is very little that we can do safely. In particular, we can't allocate from the heap. This library is separate so we can make it no_std and manage its dependencies carefully.

Dependencies

~280–760KB
~17K SLoC