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

#715 in Rust patterns

Download history 190/week @ 2024-07-29 14/week @ 2024-08-05 22/week @ 2024-08-12 15/week @ 2024-08-19 37/week @ 2024-08-26 4/week @ 2024-09-02 154/week @ 2024-09-09 82/week @ 2024-09-16 46/week @ 2024-09-23 24/week @ 2024-09-30 13/week @ 2024-10-07 31/week @ 2024-10-14 14/week @ 2024-10-21 12/week @ 2024-10-28 14/week @ 2024-11-04

72 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

~300–790KB
~18K SLoC