functions icon indicating copy to clipboard operation
functions copied to clipboard

[Feature] Support middleware as shared objects

Open denismakogon opened this issue 8 years ago • 1 comments

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 *.so files, 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).

denismakogon avatar Feb 18 '17 19:02 denismakogon

Refer to https://github.com/iron-io/functions/pull/431 for an historical perspective of such proposal.

ucirello avatar Mar 25 '17 17:03 ucirello