Microservices and APIs (short for Application Programming Interfaces) have become almost commonplace in sustainable modern application development. APIs drive microservices (an architectural design that structures an application into small, self-contained, and manageable services/pieces) and they define how a consumer (of the API) can interact with and use the underlying service.
To businesses and other organizations, APIs have become the core of digital transformation strategies. The growth in the use of APIs has increased the use of API management solutions by developers to publish their APIs to the public or external developers, internal developers as well as other partners.
An API management tool can help you to:
- Expose microservices as managed APIs.
- Combine several microservices to be exposed as APIs.
- Apply security to internal and external microservices.
- Expose legacy services as modern APIs.
- Obtain business insights from the consumption of microservices and APIs, and much more.
Are you searching for an open-source API management solution for your company? Then this guide is made just for you, continue reading.
Below, we have shared the 10 top open-source API gateways and API management solutions you can use in your IT infrastructure. Note that the following list is organized in no particular order.
1. Kong Gateway (OSS)
Kong Gateway (OSS) is a popular, open-source, and advanced cloud-native API gateway built for universal deployment: it can run on any platform. It is written in Lua programming language and supports hybrid and multi-cloud infrastructure, and it is optimized for microservices and distributed architectures.
At its core, Kong is built for high performance, extensibility, and portability. Kong is also lightweight, fast, and scalable. It supports declarative configuration without a database, using in-memory storage only, and native Kubernative CRDs.
Kong features load balancing (with different algorithms), logging, authentication (support for OAuth2.0), rate-limiting, transformations, live monitoring, service discovery, caching, failure detection and recovery, clustering, and much more. Importantly, Kong supports the clustering of nodes and serverless functions.
It supports the configuration of proxies for your services, and serve them over SSL, or use WebSockets. It can load balance traffic through replicas of your upstream services, monitor the availability of your services, and adjust its load balancing accordingly.
Additionally, Kong ships with a command-line interface that allows you to manage a Kong cluster from the command line. Also, Kong is highly extensible using plugins and different kinds of integrations. It can be managed with its RESTful API for maximum flexibility.
Tyk (pronounced Taik) is an open-source, powerful, lightweight, and fully-featured API gateway written from the ground up using the Go programming language. It is cloud-native, highly performant with an easily extensible and pluggable architecture based on open standards.
It can run independently and only requires Redis as a data store. It allows users to securely publish and manage a variety of services including legacy, REST, and GraphQL (supports GraphQL out of the box).
Tyk is baked with so many features which include a variety of authentication methods, quotas, and rate-limiting, version control, notifications and events, monitoring, and analytics. It also supports service discovery, on-the-fly transforms, and virtual endpoints, and allows for creating mock out APIs before release.
More to the above, Tyk supports API documentation and offers an API Developer portal, a CMS (Content Management System)-like system where you can publish your managed APIs and third-party developers sign up, enroll to your APIs, and can manage their own keys.
Importantly, there is only one version of the Tyk API Gateway and it is 100% Open Source. Whether you are a Community Edition user or an enterprise user, you get the same API Gateway. It ships with all possible parts required for full usability, with no feature lockout and no black box. With Tyk, you get to know exactly how your data is being processed.
Also written in Go, and built with performance in mind, KrakenD is a high performance open-source, simple, and pluggable API gateway designed with stateless architecture. It can run everywhere and requires no database to run. It has a simple configuration and supports unlimited endpoints and backends.
KrakenD features monitoring, caching, user quota, rate limiting, quality of service (concurrent calls, circuit breaker, and grained timeout) transformation, aggregation, (merge sources), filtering (whitelisting and blacklisting), and decoding. It offers proxy features such as load balancing, protocol translation, and Oauth; and security features such as SSL and security policies.
You can configure the API gateway behavior by hand or using the KrakenDesigner, a GUI that allows you visually design your API from scratch or resume an existing one. Furthermore, KrakenD’s extensible architecture allows for adding additional functionalities, plug-ins, embedded scripts, and middlewares without modifying its source code.
4. Gravitee.io API Platform
Gravitee.io is an open-source, Java-based, easy-to-use API management platform that helps organizations to secure, publish, analyze, and document their APIs. It comes with three major modules, which are:
- API Management (APIM): an open-source, simple yet powerful, flexible, lightweight, and blazing-fast API management (APIM) solution designed to give your organization full control over who accesses your APIs, when, and how.
- Access Management (AM): a flexible, lightweight, versatile, and easy-to-use Open Source Identity And Access Management solution. It is based on OAuth2/OpenID Connect protocols and acts as an identity provider broker. It features a centralized Authentication and Authorization Service to secure your applications and your APIs.
- Alert Engine (AE): a module that allows users to configure alerts and receive notifications to easily and efficiently monitor their API platform. It supports multi-channel notifications and suspicious behavior detection, and more.
Furthermore, Gravitee.io ships with Cockpit, a tool that helps you design your APIs and publishes them across all your environments with fully-featured multi-tenancy support. It enables you to scale your Gravitee.io deployment from the platform itself. And graviteeio-cli, a simple command-line tool used to manage the Gravitee.io eco-system.
5. Gloo Edge
Also open-source and Go-based, Gloo Edge is a feature-packed Kubernetes-native ingress controller (built on top of the Envoy Proxy) and a next-generation cloud-native API gateway that supports legacy apps, microservices as well as serverless. And it integrates with your environment allowing you to choose your favorite tools for scheduling, persistence, and security.
It offers powerful functional-level routing (that allows integration of legacy apps, microservices, and serverless) and is designed to support hybrid applications built using different kinds of technologies, architectures, and protocols running on different clouds.
Gloo Edge supports API gateway features such as rate limiting, circuit breaking, retries, caching, external authentication, and authorization. It also supports transformation, service-mesh integration, full automated discovery, and security.
Gloo Edge employs top open-source projects such as GraphQL, gRPC, OpenTracing, NATS and more, to provide high-quality features. Besides, it supports the integration of open-source projects that may surface in the future.
6. Goku API Gateway
Goku API Gateway is an open-source microservice gateway with a cloud-native architecture built using Go. It works as an API gateway of microservices architecture; as a platform for unified authentication, flow control, security protection; as an internal OPEN API development platform; and as a unified platform for third-party APIs.
It features high-performance HTTP forwarding and dynamic routing, service orchestration, multi-tenancy management, API access control, and more. It supports cluster deployment and dynamic service registration, backend load balancing, API health check, API disconnect and reconnect functionality, hot update (continuously updates configurations without restart nodes).
Goku also comes with a built-in dashboard to make configuration easier, a powerful plug-in system to extend its functionality, and a CLI for start\stop\reload Goku through the command line.
7. WSO2 API Microgateway
WSO2 API Microgateway is an open-source cloud-native, developer-centric, and decentralized API gateway for microservices. Built mostly using Java, it simplifies the process of creating, deploying, and securing APIs within distributed microservice architectures.
WSO2 API Microgateway is a lightweight stateless container with low memory footprints, that supports composing multiple microservices via a single API and also supports runtime service discovery. It allows for transforming legacy API formats (both requests and responses) to modern ones, to expose them to modern consumer apps.
Because WSO2 API Microgateway uses OpenAPI Specification (OAS), this enables developers to collaborate in creating APIs and then test them independently. Moreover, it is highly scalable as it can run in isolation with no dependencies on other components.
It features rate-limiting, service discovery, request and response transformation, load balancing, failover, and circuit breaking, seamless Docker and Kubernetes integration among others. It provides authentication and authorization based on OAuth2.0, API keys, Basic Auth, and mutual TLS.
Fusio is an open-source, PHP-based API management solution used to build and manage REST APIs. It is an API management platform in the sense that it allows you to develop API endpoints that can request and transform data from a database. It provides all the necessary tools to not only quickly build an API from different data sources but to also create fully customized responses.
Also, Fusio supports OpenAPI generation, SDK generation, and comes with a subscription layer to help you build a pub/sub for your API, and a simple payment system to charge for specific routes.
Fusio contains a command-line client that allows you to directly interact with the API and deploy specific YAML configuration files. Fusio-CLI is automatically included in every Fusio installation but you can also run the CLI client standalone. The are several other tools in the Fusio ecosystem.
Apiman is an open-source, Java-based API Management tool that ships with a rich API design and configuration layer with a blazingly fast runtime. It is a standalone system that can be either run as a separate system or embedded within existing frameworks and platforms.
Its key features are flexibility and policy-based runtime governance for APIs, rich management layer, and its fully asynchronous. It supports throttling and quotas, centralized security, and billing and metrics, and many other features.
10. API Umbrella
API Umbrella is an open-source API management solution built mostly using Ruby. It is a proxy that sits in front of your APIs enabling you to create a single, public entry point to all your APIs and microservices regardless of where there are located. It offers functionality such as API keys, rate limiting, analytics, and caching.
It supports multitenancy and comes with an Admin to manage all aspects of API Umbrella, such as API routing configuration, user management, viewing analytics, and more. Under API Umbrella, all administrative functionality is also available via REST API.
That’s it for now! In this article, we have reviewed 10 open-source API gateways and management solutions you can use on a Linux server, in your infrastructure. Feel free to let us know of any other solutions you have come across but we have missed in this article.