Repolode
membrane

membrane/api-gateway

Open-source API gateway that proxies REST and SOAP services, adding OpenAPI deployment, WSDL-to-OpenAPI conversion, OAuth2/JWT security and message validation.

Open-source alternative to:ApigeeKong Konnect

Stars
658
Forks
186
Open issues
45
Last commit
4 hours ago

What is it?

Membrane is an API gateway written in Java that sits in front of backend services and handles routing, transformation, security and traffic control. It can deploy APIs directly from OpenAPI descriptions (versions 3.0 to 3.2) and validate requests against OpenAPI, JSON Schema, XSD and WSDL. It runs as a Docker container or Java application and needs no database; configuration is written in YAML.

A main focus is legacy integration. Membrane can generate OpenAPI specifications from WSDL, expose SOAP web services as JSON REST APIs, and convert between JSON and XML using the schemas from the WSDL. It also supports WS-Security UsernameTokens and XML signatures, and provides an MCP protection plugin and an LLM gateway for AI provider access.

On the security and operations side, Membrane offers API keys, OAuth2, JWT validation, TLS, rate limiting, load balancing, Prometheus metrics and OpenTelemetry tracing. Flows can be extended with Groovy or JavaScript scripts, templates and orchestration calls to other APIs.

Key features

  • 01Deploys APIs directly from OpenAPI 3.0, 3.1 and 3.2 descriptions with optional request validation.
  • 02Converts WSDL-described SOAP services into OpenAPI and JSON REST endpoints.
  • 03Validates messages against OpenAPI, JSON Schema, XSD and WSDL.
  • 04Supports API keys, OAuth2, JWT and WS-Security for authentication.
  • 05Provides rate limiting, load balancing and TLS termination.
  • 06Exports Prometheus metrics and OpenTelemetry traces.

Use cases

  • Exposing legacy SOAP services to modern JSON or REST clients without changing the backend.
  • Putting OAuth2 or JWT protection in front of existing APIs with a YAML configuration.
  • Running a lightweight gateway in containers where no database is available.
  • Controlling which tools and models an AI agent or LLM client can access through an MCP or LLM gateway.

Quick start

  1. 1

    Start Membrane as a container

    docker run --rm -it -p 2000:2000 predic8/membrane
  2. 2

    Create an apis.yaml file with the proxy configuration shown in the README

  3. 3

    Run the container with apis.yaml mounted (Linux/macOS)

    docker run --rm -p 2000:2000 -v "$(pwd)/apis.yaml:/opt/membrane/conf/apis.yaml" predic8/membrane

Things to know

  • Java-based, so running it outside Docker requires a Java setup.

In collections

Topics

FAQ

What is api-gateway?
Open-source API gateway that proxies REST and SOAP services, adding OpenAPI deployment, WSDL-to-OpenAPI conversion, OAuth2/JWT security and message validation. Membrane is an API gateway written in Java that sits in front of backend services and handles routing, transformation, security and traffic control. It can deploy APIs directly from OpenAPI descriptions (versions 3.0 to 3.2) and validate requests against OpenAPI, JSON Schema, XSD and WSDL. It runs as a Docker container or Java application and needs no database; configuration is written in YAML.
Is api-gateway free to use? What license does it have?
api-gateway is open source under the Apache-2.0 license. Check the license terms before using it in commercial products.
Is api-gateway still maintained?
Actively maintained. The last commit to api-gateway was on Nov 7, 2026.
What can I use api-gateway for?
Exposing legacy SOAP services to modern JSON or REST clients without changing the backend. Putting OAuth2 or JWT protection in front of existing APIs with a YAML configuration. Running a lightweight gateway in containers where no database is available. Controlling which tools and models an AI agent or LLM client can access through an MCP or LLM gateway.
How do I install api-gateway?
Start Membrane as a container: docker run --rm -it -p 2000:2000 predic8/membrane Create an apis.yaml file with the proxy configuration shown in the README Run the container with apis.yaml mounted (Linux/macOS): docker run --rm -p 2000:2000 -v "$(pwd)/apis.yaml:/opt/membrane/conf/apis.yaml" predic8/membrane
Where can I get api-gateway?
The source code and installation instructions are on GitHub: https://github.com/membrane/api-gateway

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects