Add Rust as a playable language
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 55/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, node.js, rust
Direzione di ricerca
Start with backend/arena/runner/harness.js and compare pythonProgram or javascriptProgram; then inspect LANGUAGES and starterCode in the same file. Check backend/arena/runner/executors.js if you want local compilation, and review the tests in backend/tests/. Done means supported problems have a Rust driver and typed starter code, Judge0 is wired up, real Judge0 checks cover correct and incorrect solutions across the listed types, and both required checks pass.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Loved by competitive programmers and a strong fit for typed starter code. serde_json is not in Judge0's Rust image, so the driver needs a small hand-written JSON reader (same situation as C++ in #2). Tuples map directly to Rust tuples.
CodeArena runs player code in Python, JavaScript and TypeScript. Adding a language is self-contained and a great way to get into the codebase.
Where the code lives
backend/arena/runner/harness.js: one small driver per language. The driver reads{"tests":[{"args":[...]}]}as JSON on stdin, calls the player's function once per test, and prints the per-run marker line followed by a JSON array of{ ok, value }/{ ok, error }. Copy the shape ofpythonProgram/javascriptProgram. The marker nonce must stay per-run.LANGUAGESin the same file: add{ label, judge0Id }.starterCode(problem, language): typed starter code built fromproblem.function(name,params[].type,returns).backend/arena/runner/executors.js:localExecutoronly knowsnodeandpython3; add your compiler for local development if you like (it is never used in production).
Types the 45 problems use
integer, integer[], integer[][], number[], string, string[], boolean, and tuples: [integer, integer], [integer, integer][], [integer, integer, integer][], [string, integer][], [string, string, string][], [integer, integer, string].
Statically typed languages need a mapping for each of these. If a mixed tuple such as [string, integer] has no clean equivalent in your language, it is fine to leave that problem out for your language rather than force an awkward type: the loader supports per-problem languages via runnableLanguages.
Definition of done
- Driver plus typed starter code for every problem your language supports.
- Judge0 language id wired up (Judge0 CE: Rust 73; confirm on your Judge0 instance).
- Proof: correct solutions pass and wrong ones fail on a spread of problems (easy, medium, hard, and every type above) against a real Judge0 (
docker-compose.judge0.ymlin the repo root runs one locally). - Tests in
backend/tests/covering the driver output and starter code;npm teststays green. node scripts/check-boundary.jspasses.
- Lingua principale
- JavaScript
- Stelle
- 0
- Fork
- 2
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di sennaicodes/codearena
-
Add issue and pull request templatesForse di nuovo libera @franciscorodr26 l’ha presa 19 giorni fa e non c’è nessuna pull request aperta. Apertadocumentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
sennaicodes/codearena#13 · 1 commento ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
sennaicodes/codearena#34 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
sennaicodes/codearena#33 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 45/100
sennaicodes/codearena#32 ·
-
enhancement help wanted
Difficoltà 5/5 Più di una settimana Idoneità per principianti 38/100
sennaicodes/codearena#31 ·
Tutte le issue di sennaicodes/codearena
Issue simili
-
[bug] extension mappingAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
-
bug code-annotation
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
quarto-dev/quarto-cli#15215 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
521xueweihan/HelloGitHub#4133 ·
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
Hugo-SA/receita-random#20 ·
I maintainer di solito rispondono entro 1 giorno