You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+42-22
Original file line number
Diff line number
Diff line change
@@ -1,18 +1,48 @@
1
-
To run normally:
1
+
# Serverless Online Judge (Rust)
2
+
3
+
From the Competitive Programming Initiative. A successor to https://github.com/cpinitiative/online-judge.
4
+
5
+
## Goal
6
+
7
+
To create a low-cost, reliable, and fast online judge that:
8
+
9
+
- Supports C++, Java, Python, and possibly other languages
10
+
- Can be used to run code against many test cases in parallel
11
+
- Can be extended to support graders, scorers, and interactive problems
12
+
13
+
Notably, the following are not goals of this project:
14
+
15
+
-*Is not necessarily consistent*. This is because AWS Lambda can run on different CPU architectures. Since USACO problems generally aren't too sensitive to time constraints, we are OK with this.
16
+
-*Is not necessarily secure*. Malicious code will not harm other AWS resources, but could theoretically return falsified results.
17
+
18
+
This online judge is meant to be used with the USACO Guide IDE or USACO Guide Groups, so the experience is optimized to make honest users happy most of the time rather than catch malicious users (i.e. we would rather grade problems faster even if that means malicious users can access expected output).
19
+
20
+
## Development
21
+
22
+
Install Rust, Cargo, and project depenencies.
23
+
24
+
### Running in development
2
25
3
26
```
4
27
cargo lambda watch
5
28
```
6
29
7
30
And POST `http://localhost:9000/compile-and-execute`.
8
31
9
-
To test base docker image (useful for determining what packages need to be installed)
32
+
### Deploying
33
+
34
+
Continuous deployment is set up with Github Actions; all you need to do is push to main.
35
+
36
+
### Miscellaneous Commands
37
+
38
+
39
+
To test base docker image (useful for determining what packages need to be installed):
10
40
11
41
```
12
42
docker run --rm -it --platform linux/amd64 --entrypoint /bin/bash public.ecr.aws/lambda/python:3.12
0 commit comments