Lura logo

Lura

Build ultra‑fast, extensible API gateways with Go middleware

Lura is a Go framework for assembling high‑performance API gateways and proxies, offering aggregation, transformation, and a rich middleware ecosystem to simplify client‑side data consumption.

Lura banner

Overview

Overview

Lura provides Go developers a modular framework to create ultra‑performant API gateways and proxies. By following the Unix philosophy, it offers small, reusable components that can aggregate multiple backend services, transform responses, and shrink payloads to exactly what the UI needs.

Capabilities & Deployment

The library supports HTTP(S) out of the box and, through its generic core, can be extended to RPC or other protocols. Configuration is driven by a JSON file defining endpoints, backends, and middleware such as OAuth or custom security layers. You can compile Lura with Go to embed it in your own service, containerize the binary, or use the pre‑built KrakenD gateway for a ready‑to‑run solution. This flexibility makes Lura suitable for microservice architectures, mobile back‑ends, and any scenario where reducing client complexity and latency is critical.

Highlights

Aggregates multiple backend services into a single endpoint
Extensible middleware architecture (OAuth, security, custom plugins)
High‑performance Go implementation with low latency
Supports HTTP(S) and generic libraries for RPC gateways

Pros

  • Ultra‑fast performance thanks to native Go code
  • Modular Unix‑philosophy components for easy reuse
  • Rich ecosystem of middleware and plugins
  • Flexible library for custom gateway builds

Considerations

  • Requires Go knowledge to compile and integrate
  • Configuration can become complex for large setups
  • Limited official UI tooling for management
  • Community support varies; licensing not explicitly stated

Managed products teams compare with

When teams consider Lura, these hosted platforms usually appear on the same shortlist.

Amazon API Gateway logo

Amazon API Gateway

Fully managed service to create, publish, and secure APIs at any scale for backend access

Azure API Management logo

Azure API Management

Fully managed multicloud API management service for publishing, securing, and monitoring APIs across environments

Google Apigee API Management logo

Google Apigee API Management

API management platform to publish, secure, and analyze APIs

Looking for a hosted option? These are the services engineering teams benchmark against before choosing open source.

Fit guide

Great for

  • Teams needing to consolidate multiple microservice calls into one API
  • Developers building custom proxies with Go
  • Mobile or frontend apps that require trimmed response payloads
  • Enterprises seeking a performant, extensible gateway without vendor lock‑in

Not ideal when

  • Projects that cannot use Go or prefer a no‑code solution
  • Simple static sites where a full gateway adds unnecessary overhead
  • Organizations requiring a commercial SLA or dedicated support
  • Use cases demanding out‑of‑the‑box UI dashboards

How teams use it

Mobile front‑page aggregation

Single endpoint returns combined product, promo, user, and cart data, reducing round‑trips and payload size.

Legacy microservice unification

Wraps disparate services behind a unified API, handling protocol translation and response shaping.

OAuth protected API layer

Adds token validation middleware, securing backend services without code changes.

RPC gateway creation

Leverages generic libraries to expose RPC services via HTTP, enabling uniform client access.

Tech snapshot

Go100%
Makefile1%

Tags

microservicegogatewayload-balancerproxiesgateway-apibackend-servicesapisapi-gatewaymiddlewareroutergolangkrakend

Frequently asked questions

Do I need to use the KrakenD binary?

You can either download the pre‑built KrakenD binary for a ready‑to‑run gateway or compile Lura from source to embed it in your own Go application.

Which programming language is required?

Lura is a Go library; you need Go installed to compile and integrate it.

Can Lura handle non‑HTTP protocols?

Yes, its generic libraries allow you to build RPC gateways or other protocol adapters.

How is the gateway configured?

Configuration is managed via a JSON file that defines endpoints, backends, and middleware, which the library parses at startup.

Is there a community support channel?

The project maintains a Slack channel and a Twitter account @luraproject for community assistance.

Project at a glance

Active
Stars
6,722
Watchers
6,722
Forks
579
Repo age9 years old
Last commit3 weeks ago
Primary languageGo

Last synced 3 hours ago