decomp.me
decomp.me copied to clipboard
cromper
(this is currently unfinished and is in draft state)
This PR adds a new entirely separate service for handling the various processes involves in running the site: assembling, compiling, diffing, and running decompilers.
The backend still talks to this service directly, as well as the frontend server, but now the client can also talk directly to this server to do decompilation tasks, incremental compilations, etc.
There's several reasons we are separating these into a separate service:
- The django server can be freed of many of its responsibilities
- The new service is async (woo), so requests will no longer block each other
- The backend is now much leaner, allowing for possible future rewrites and optimizations without worrying about all this compiler junk
Todo:
- [x] Make compiler, library, and platform endpoints singular
- [x] Deserialize back into proper objects in Django
- [x] Django tests pass
- [x] Fixup frontend
/platformendpoint to fetch platform data from cromper (or update api.ts to be able to call cromper?) - [ ] Sort out compiler flags
- [ ] Update nginx config
- [ ] CI passes
- [ ] health checks from django <> cromper?
- [ ] 'super' endpoint to do initial scratch creation in 1 go (TBD: profile first to determine if necessary)