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

  1. its currently kinda crappy

  2. 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

  1. https://users.rust-lang.org/t/build-an-actix-web-endpoint-to-see-live-changes-of-my-redis-cache/109333

  2. https://designpatternsmastery.com/1/13/3/1/

  3. https://designpatternsmastery.com/1/10/4/

  4. https://designpatternsmastery.com/1/14/1/1/#concurrency-patterns

  5. https://stackoverflow.com/questions/42471870/publish-subscribe-vs-producer-consumer

  6. https://github.com/dezashibi-c/a-prod_cons_vs_pub_sub_in_c

  7. https://dev.to/aaravjoshi/6-essential-websocket-patterns-for-real-time-applications-39gf

  8. https://docs.rs/actix/latest/actix/trait.AsyncContext.html

  9. https://meta.discourse.org/t/introduction-to-discourse-development/349939

  10. https://users.rust-lang.org/t/async-queue-with-concurrent-batch/75138

  11. https://peerdh.com/blogs/programming-insights/implementing-a-rust-based-sandbox-for-isolated-command-execution

  12. https://codezup.com/building-high-performance-python-extensions-with-rust-guide/

  13. https://nullderef.com/blog/plugin-tech/

  14. https://medium.com/devsphere/implementing-rust-based-plugins-for-existing-software-ecosystems-264054028c59

  15. https://github.com/wax911/plugin-architecture

  16. https://github.com/topics/plugin-system?l=rust

  17. https://www.reddit.com/r/rust/comments/6v29z0/plugin_system_with_api/

  18. https://mathieularose.com/plugin-architecture-in-python

  19. https://pyquesthub.com/creating-a-dynamic-plugin-system-in-python

  20. https://colliery.io/blog/rust-python-pattern/

  21. https://medium.com/@kudryavtsev_ia/how-i-design-and-develop-real-world-python-extensions-in-rust-2abfe2377182

  22. https://reorchestrate.com/posts/plugins-for-rust/

  23. https://medium.com/rustaceans/a-plugin-system-for-rust-but-not-only-using-webassembly-26bb3d327c10

  24. https://blog.herecura.eu/blog/2020-05-21-toying-around-with-firecracker/

  25. https://lib.rs/crates/firecracker-rs-sdk