Skip to content

Giant Caligula Refactor #236

Description

@ifd3f

Most of Caligula was hacked together in a month or so. The only features it was initially built for were hashing, decompressing, sudoing, verifying, and graphing a fun little speed graph.

However, the scope of the project has expanded. I want to make Caligula a general, user-friendly bulk disk operation tool, supporting various kinds of disk operations besides just single-write:

In order to support a lot of the new features I want to add, make bugs easier to fix, make the tool friendlier to use, a large amount of refactoring is necessary.

This task tracks the status of the Giant Refactor.

Diagram of what it will vaguely look like in the end

Blue is the UI, green is the middleware, and yellow is the backend.

Image

Once the refactor is done, I'd like to maintain API stability at the UI/middleware border and at the middleware/backend border, but within each section, stability is not guaranteed.

Planned order of operations

  1. Return to stdin/stdout-based IPC #222
  2. Improve the IPC situation #232
  3. caligula bench #238
  4. Split out writer and verifier into their own tasks #234 + Improve writer and verifier performance by using multiple threads #239
  5. Refactor TUI rendering code to be fully synchronous #233
  6. Fancy TUI Wizard #235
  7. Improved error handling and messaging #231

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    Status
    In Progress

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions