explaingit

luraproject/lura

6,773GoAudience · ops devopsComplexity · 4/5LicenseSetup · hard

TLDR

A Go framework hosted by the Linux Foundation for building API gateways that aggregate multiple backend services into a single endpoint, reducing client-side complexity and network calls, the core engine behind KrakenD.

Mindmap

mindmap
  root((repo))
    What it does
      API gateway framework
      Backend aggregation
      Single endpoint
    How it works
      Parallel upstream calls
      Response merging
      Field filtering
    Config
      JSON endpoint file
      Middleware plugins
    Built on Lura
      KrakenD binary
      Custom gateways
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Build an API gateway that fetches data from four backend services in parallel and returns a single merged response to a mobile app.

USE CASE 2

Reduce mobile network usage by letting the gateway strip fields the client does not need before sending the response.

USE CASE 3

Assemble a custom Go gateway with OAuth authorization and request transformation middleware using Lura as the core framework.

USE CASE 4

Deploy KrakenD, the pre-built binary on top of Lura, for a fully functional gateway without writing Go code.

Tech stack

GoJSON

Getting it running

Difficulty · hard Time to first run · 1h+

Lura is a framework, not a runnable binary, you write Go code that imports it, use the KrakenD binary for a zero-code gateway.

Use freely for any purpose, including commercial use, as long as you preserve the copyright and license notice, Apache 2.0.

In plain English

Lura is a Go library for building API gateways, hosted under The Linux Foundation. An API gateway is a service that sits between a client app (like a mobile app or web frontend) and a set of backend servers. Instead of the client making four separate network calls to four different services and then combining the results itself, the gateway does all of that work server-side and returns one clean response. The README walks through a practical example: a mobile screen that needs data from a product list, a promotions list, a user profile, and a shopping cart. Without a gateway, the app makes four requests and stitches together the pieces it needs. With Lura in front, it makes one request to a single endpoint, and Lura fetches all four upstream responses in parallel, merges them, and strips out any fields the client does not need. This reduces the amount of data sent over the mobile connection and removes complexity from the app itself. Lura is a framework, not a ready-to-run binary. You use it as a library in your own Go code to assemble the gateway behavior you want, connecting it to middleware components for things like OAuth authorization, security checks, and request transformation. The KrakenD API Gateway is the most prominent product built on top of Lura, a downloadable KrakenD binary is available for those who want a fully functional gateway without building from source. Configuration is driven by a JSON file that describes the endpoints the gateway should expose and what backend services each one calls. Benchmark results for various components are included in the repository documentation. The project is a Linux Foundation hosted project, was previously known as the KrakenD framework, and is licensed under Apache 2.0.

Copy-paste prompts

Prompt 1
I want to build an API gateway with Lura in Go that calls three microservices in parallel and merges their JSON responses into one. Show me the minimal Go code and JSON config to set that up.
Prompt 2
How do I configure Lura to strip specific fields from an upstream API response before sending it to the client?
Prompt 3
I want to add OAuth2 token verification middleware to a Lura-based gateway. Where do I plug in middleware and what interface does it need to implement?
Prompt 4
What is the difference between using Lura as a framework and downloading the KrakenD binary? When should I build from source versus use the pre-built binary?
Open on GitHub → Explain another repo

← luraproject on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.