Lura is a Go library for building ultra-performant API gateways with middleware support. The project was formerly known as the KrakenD framework and serves as the core of the KrakenD API Gateway.
Lura solves the problem of client applications needing to aggregate data from multiple backend services by acting as a proxy layer that sits between clients and source servers. It combines responses from many sources into single endpoints, allowing developers to group, wrap, transform, and reduce response payloads to only the data clients actually need. This eliminates the complexity of clients managing multiple round-trip requests and filtering responses themselves. While primarily designed for HTTP and HTTPS, Lura's generic library architecture supports building other types of gateways and proxies, including RPC gateways. The framework includes middleware support for adding functionality like OAuth authorization and security layers.
Lura is presented as a Go library for developers who want to build API gateways from source or reuse its components in other applications. It follows Unix philosophy principles with small, independent, reusable components. Developers should use this repository if they need to compile and customize their own gateway implementation. For those seeking a ready-to-use binary API Gateway without building from source, the KrakenD binary distributions are available as an alternative. The framework includes comprehensive documentation covering configuration files and component benchmarks.
The project maintains active development with regular updates to its core libraries and middleware components. The codebase demonstrates consistent refinement of performance-critical paths and gateway functionality. Documentation is kept current with framework changes and includes practical examples for library usage. The project sustains an organized structure separating the reusable framework from complete gateway implementations, allowing both library consumers and gateway builders to work effectively with the codebase.