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
+3-3
Original file line number
Diff line number
Diff line change
@@ -18,8 +18,8 @@
18
18
19
19
Components:
20
20
- Website: This package contains all of the React frontend code used to run the website.
21
-
- Backend API: octree.io-backend is the backend that uses Express and socket.io to handle requests.
22
-
- Worker: octree.io-worker is the worker service that compiles and executes the code submissions.
21
+
- Backend API: [octree.io-backend](https://github.com/octree-io/octree.io-backend) is the backend that uses Express and socket.io to handle requests.
22
+
- Worker: [octree.io-worker](https://github.com/octree-io/octree.io-worker) is the worker service that compiles and executes the code submissions.
23
23
- Postgres: Main database used for storing user info, room data, chat messages, etc. The database schema can be found at tables.sql
24
24
- MongoDB: Used to store the problem documents which contain metadata like problem name, ID, starter code, test cases and so on
25
25
- RabbitMQ: The messaging queue that's used to relay messages between the backend and the workers.
@@ -29,7 +29,7 @@ How it works:
29
29
- Frontend sends the code to socket.io room.
30
30
- Backend receives the code request and enqueues a message to RabbitMQ.
31
31
- Worker picks up message from RabbitMQ and starts processing work.
32
-
- Most languages use the Compiler Explorer API to compile and execute code except for JavaScript and TypeScript. A dummy npm package is created for both JS & TS and the worker writes the code to the package and executes it with wasmtime.
32
+
- Most languages use the [Compiler Explorer API](https://github.com/compiler-explorer/compiler-explorer/blob/main/docs/API.md) to compile and execute code except for JavaScript and TypeScript. A dummy npm package is created for both JS & TS and the worker writes the code to the package and executes it with wasmtime.
33
33
- TypeScript transpiles to JavaScript with `tsc` first before being executed.
34
34
- Once the worker completes the execution, the stdout, stderr and execution time are sent to a compilation responses queue in RabbitMQ.
35
35
- Backend picks up message from RabbitMQ and relays the results back to the user who requested the code compilation.
0 commit comments