#sandbox #resources #execute #memory #securely #cpu #executable

bin+lib tabox

A sandbox to execute a program in an isolated environment and measure its resource usage

23 releases (6 stable)

1.3.1 Mar 11, 2023
1.3.0 Jun 7, 2022
1.2.1 Dec 5, 2021
1.1.0 Nov 13, 2021
0.1.2 Nov 30, 2019

#500 in Filesystem

Download history 2/week @ 2023-12-04 11/week @ 2024-02-19 9/week @ 2024-02-26 39/week @ 2024-03-04 8/week @ 2024-03-11

67 downloads per month

MPL-2.0 and maybe LGPL-2.1

67KB
1.5K SLoC

tabox

Docs crates.io

A minimal program to securely execute untrusted executables in a sandboxed environment.

Featres:

  • measure and limit accurately the usage of the following resources:
    • CPU time in nanoseconds (both user, system)
    • memory usage (maximum residente set size - RSS) in bytes
    • wall time
  • doesn't require root privileges (altough it requires user namespaces enabled, something that some distributions disable by default)
  • dedicated filesystem for the sandbox with the possibility to bind-mount directories on the local filesyste, both read-only and read-write
  • works also on macOS, altough in that system no real sandboxing is done and some features are not available (e.g. bind mounts)

This sandbox is currently used by task-maker-rust to securely execute user submissions.

License: MPL-2.0

Dependencies

~4–16MB
~199K SLoC