Goboxd: Stage-1 submission. Team/spaced - #22
Open
ethicks-x wants to merge 46 commits into
Open
Conversation
|
that shit too much i gues |
Owner
Evaluation SummaryTeam: pr22-spaced · Rank: 33 / 45 · Weighted score: 26.0 / 100
Checks:
Thanks for participating! Scores reflect evaluation against the spec. Reply here if you have questions. |
Don't know why they quoted it as build - NO. It works fine in my machine and many more... |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Submission Details
Submitted by TEAM SPACED. Made by Arif Sardar (24f2009339) and Sinchan Gayen (24f2008341).
Quickstart
Make sure that docker/podman is installed in your system.
What We tried building
An HTTP daemon in Go that accepts source code via
POST /run, executes it inside an nsjail sandbox,and returns structured per-test-case results with status codes.
The language registry is a YAML file. Adding a language requires one
YAML block and one language install script file - zero Go code changes. Verified
by adding rust, go during development without
touching any Go source.
Languages (9): python3, c++, c, java, js, bash, verilog, rust, go
and execution inside nsjail.
Bonus languages (2 beyond required 7): rust, go.
Endpoints: POST /run, GET /healthz, GET /readyz, GET /info
Concurrency: buffered channel semaphore, default runtime.NumCPU()
slots. Requests beyond capacity timeout (default 30s) rather than queuing indefinitely.
nsjail: built from source at tag 3.4 in a separate Docker build
stage on debian:bookworm-slim. PID, mount, UTS, IPC, net
namespaces + seccomp Kafel policy (all included in nsjail). Per-request wall time, memory, and
process limits from languages.yaml. Cgroup memory tracking reports
actual peak RSS per test case.
Security Details
See:
docs/security.mdTests
unit tests and integration tests against the service includes config loading,
filename validation, flag validation, status mapping, output comparisson, memory cap behaviour,
output truncation, also with the security boundaries (mentioned much deeper in
docs/security.md).Run with
make integration- Makefile handles container lifecycle automatically.Benchmarks (Python 3, Arch, 8 cores, nsjail enabled)
See:
docs/benchmark.mdZero errors at all concurrency levels for interpreted languages.
Where Go build time increase is a pretty discussable topic in later stages.
Docs
docs/— api.md, architecture.md, security.md, benchmarks.md,languages.md.