{"id":15696128,"url":"https://github.com/tilpner/qeval","last_synced_at":"2025-05-08T22:25:40.435Z","repository":{"id":60282558,"uuid":"147191541","full_name":"tilpner/qeval","owner":"tilpner","description":"qemu+nix for code evaluation","archived":false,"fork":false,"pushed_at":"2022-09-27T14:21:43.000Z","size":35,"stargazers_count":7,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-05-05T21:40:03.775Z","etag":null,"topics":["eval","nix","qemu","qemu-kvm","sandbox"],"latest_commit_sha":null,"homepage":"https://git.tx0.co/qeval","language":"Nix","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tilpner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-09-03T10:52:54.000Z","updated_at":"2022-11-10T01:25:25.000Z","dependencies_parsed_at":"2022-09-27T15:50:19.922Z","dependency_job_id":null,"html_url":"https://github.com/tilpner/qeval","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilpner%2Fqeval","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilpner%2Fqeval/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilpner%2Fqeval/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tilpner%2Fqeval/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tilpner","download_url":"https://codeload.github.com/tilpner/qeval/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253156533,"owners_count":21862943,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["eval","nix","qemu","qemu-kvm","sandbox"],"created_at":"2024-10-03T19:07:46.579Z","updated_at":"2025-05-08T22:25:40.413Z","avatar_url":"https://github.com/tilpner.png","language":"Nix","readme":"# qeval\n\nqeval is a toy to safely-ish (beware bugs and hardware limitations) execute malicious/untrusted code.\nIt's inspired by [shbot](https://github.com/geirha/shbot), but none of the code was taken from there.\n\nThere are currently evaluators for\n\n* Perl 5\n* Rust nightly\n* Go\n* C (gcc)\n* C (tcc)\n* C++ (gcc)\n* Java (openjdk)\n* Python 3\n* Python 2\n* Ruby\n* Bash\n* Ash (from busybox)\n* NodeJS\n* Lua\n* PHP\n* Racket\n* Guile\n* Haskell\n* Qalculate (which doesn't really need the sandboxing)\n\nPerl is currently the fastest evaluator, taking 0.16s on my laptop for a simple `print 42`.\n\n\n### Example usage\n\n```sh\n# This may build Linux, QEMU, and Perl. Use evaluators.sh if you're impatient\n$ cd $(nix-build --no-out-link . -A evaluators.all)\n$ bin/sh id\nuid=0(root) gid=0 groups=0\n```\n\n### Todo\n\n* Disk hotplug to reduce amount of disk suspensions (and be able to mlock the remaining one)\n* More sophisticated control processes\n  * Quicker abort when output has reached size limit\n  * Report exit status, memory usage (and OOM), other statistics (count syscalls?)\n  * Multi-line input\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftilpner%2Fqeval","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftilpner%2Fqeval","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftilpner%2Fqeval/lists"}