functions
functions copied to clipboard
[Feature] Support middleware as shared objects
Go 1.8 enables plugins (as shared objects), so instead of (or as an alternative) creating separate binary that represents regular functions but with additional middleware inside support middleware as *.so objects.
Required changes:
- [ ] Provide unified interface for registering middleware from
*.so - [ ] Make server to lookup specific directory (
~/.middleware, etc.) for*.sofiles, try to load them and search for a functions
func AddMiddleware(server *Server) {
server.AddMiddleware(&CustomMiddleware{})
}
inside each *.so object under ~/.middleware directory
Nice to have:
- [ ] extract middleware framework from iron-io/functions into its own package and repo
iron-io/functions as dependency brings a lot code that might appear redundant for middleware development (see how may dependencies it brings at https://github.com/denismakogon/functions-keystonemiddleware/blob/master/glide.lock).
Refer to https://github.com/iron-io/functions/pull/431 for an historical perspective of such proposal.