This is nothing more but an outline for the time being. It’s not anything sophisticated, I just write comments that keep me on track and help me stay focused for when I go to re-architect OSIB.
Ok, I need to update the architecture of OSINTBuddy because
-
its currently kinda crappy
-
to be continued…
Plugin System
We need to be able to run multiple untrusted plugins concurrently.
Security and Sandboxing
I’m most likely going to use Firecracker for this. Firecracker is for creating and managing secure, muli-tenant container/function based services. Think secure and fast microVMs. A bonus of this is I could potentially provide a REPL for in-browser plugin (read entity) development. Imagine a fully-fledged bash shell with neovim for development, well, unlikely I’ll do that, but I can dream. I found this rust library that was created around 5 months ago by a Junior student at Peking University. I’m thinking screw it, no issues, 8 stars (now 9 from me), it’s good enough for this project.
to be continued…
Footnotes
-
https://designpatternsmastery.com/1/14/1/1/#concurrency-patterns
-
https://stackoverflow.com/questions/42471870/publish-subscribe-vs-producer-consumer
-
https://dev.to/aaravjoshi/6-essential-websocket-patterns-for-real-time-applications-39gf
-
https://meta.discourse.org/t/introduction-to-discourse-development/349939
-
https://users.rust-lang.org/t/async-queue-with-concurrent-batch/75138
-
https://codezup.com/building-high-performance-python-extensions-with-rust-guide/
-
https://www.reddit.com/r/rust/comments/6v29z0/plugin_system_with_api/
-
https://pyquesthub.com/creating-a-dynamic-plugin-system-in-python
-
https://medium.com/rustaceans/a-plugin-system-for-rust-but-not-only-using-webassembly-26bb3d327c10
-
https://blog.herecura.eu/blog/2020-05-21-toying-around-with-firecracker/