An open-source Go framework for building ultra-performant API gateways with middleware support.
Lura is an open-source API Gateway framework written in Go that enables developers to build high-performance proxies and gateways. It aggregates multiple backend API calls into single endpoints, reducing client complexity and improving performance by returning only the necessary data.
Backend engineers and platform teams building microservices architectures who need to orchestrate, aggregate, and optimize API responses for web and mobile clients.
Developers choose Lura for its extreme performance, modular middleware architecture, and flexibility in building custom API gateways without vendor lock-in, leveraging a proven framework used in the KrakenD API Gateway.
Ultra performant API Gateway with middlewares. A project hosted at The Linux Foundation
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Aggregates multiple backend calls into single endpoints, reducing network round trips and payload size, which is core to its optimization for mobile and web clients as shown in the practical example.
Built from small, reusable components, allowing developers to assemble custom gateways without bloat, emphasizing composability as stated in the philosophy.
Supports plugins for OAuth, security, logging, and more, enabling easy integration of custom functionality without modifying the core framework.
Can be adapted beyond HTTP(S) for RPC and other protocols, offering versatility in gateway implementations, as highlighted in the protocol flexibility feature.
Requires detailed JSON configuration files to define endpoints and backends, which can be error-prone and less intuitive than GUI-based tools, adding setup overhead.
As a framework, it lacks many pre-built management features like caching, rate limiting, or dashboards, necessitating additional development or integration efforts.
Being a Go library, it demands Go expertise and toolchain, which may not align with teams using other programming languages or preferring polyglot environments.