-
-
InfluxDB
Purpose built for real-time analytics at any scale. InfluxDB Platform is powered by columnar analytics, optimized for cost-efficient storage, and built with open data standards.
-
A cool solution I saw was Traefik's yaegi module. They basically created an interpreted scripting language with Go compatible syntax (turning Go into an interpreted, not compiled, language). I haven't tried this but it sounds like it brings the better parts of dynamic languages like Python's plugin support to Go - plugin writers can still write "Go" code, which can load dynamically.
-
Other approaches I've seen are similar to yaegi but will embed another scripting language such as JavaScript or Lua. My personal favorite of these is goja, a JavaScript interpreter written natively in Go (no cgo dependency), it supports a lot of ES6+ modern syntax features of JavaScript. Being natively in Go, you can bind your Go functions and types and call them bidirectionally, so you can expose a surface area of internal API functions to your JS interpreter and build a scripting system for users to extend your app dynamically.
-
I did some research and found a WebAssembly runtime that can run Go code that has been compiled to WASM. It seems to me that one could implement a plugin system using this. I might try.
-
Another Wasm runtime to check out is https://github.com/tetratelabs/wazero
-
SaaSHub
SaaSHub - Software Alternatives and Reviews. SaaSHub helps you find the best software and product alternatives