decomp.me icon indicating copy to clipboard operation
decomp.me copied to clipboard

cromper

Open ethteck opened this issue 3 months ago • 0 comments

(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 /platform endpoint 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)

ethteck avatar Sep 21 '25 17:09 ethteck