N oodle
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage

noodlecore

If you download the source code, you’ll see that the main functionality of noodle is implemented in a static library called noodlecore.

Core vs REPL-UI

For the moment, I’ve differentiated core from UI. Anything that has to do with interpreting commands, displaying visual feedback, and keybindings is considered UI. The part of the program that interacts with the filesystem and changes the metadata is considered core.

But I think there might be a good chunk of the interface that might generalize as part of any noodle-based UI in the same way that “vim bindings” are a thing. It becomes a way of interacting with the information of that type. This makes some of the UI want to get into the core.

Client-Server Architecture

Probably deserves its own article.

Partial Loading

Currently the core loads the whole mpg into memory. I think it would be interesting to be able to load a subset of layers. Alternatively layers could be dynamically discovered. But this requires more sophisticated context control.

Minimalism in the Core

I don’t know if this is a good guiding principle. I think noodle won’t ever make sense as anything other than a program attatched to a UI. So we can assume that it will be run on a computer powerful enough not to require a minimalist build of the core. I will only look into this if the need arises down the line.

The MuxGraph Class

I’m not sure how deep the error checking should go.

  • I don’t think I should do any integrity checks inside the core.
  • But there should be integrity checking as a feature of the core that you can call.
  • Any kind of error having to do with parsin should be handled by the UI.
  • The core