All Projects → motiv-labs → Janus

motiv-labs / Janus

Licence: mit
An API Gateway written in Go

Programming Languages

go
31211 projects - #10 most used programming language
Gherkin
971 projects
shell
77523 projects

Projects that are alternatives of or similar to Janus

Annon.api
Configurable API gateway that acts as a reverse proxy with a plugin system.
Stars: ✭ 306 (-86.39%)
Mutual labels:  api, api-gateway, proxy, reverse-proxy
Apisix Docker
the docker for Apache APISIX
Stars: ✭ 119 (-94.71%)
Mutual labels:  api, microservices, api-gateway, reverse-proxy
Tyk
Tyk Open Source API Gateway written in Go, supporting REST, GraphQL, TCP and gRPC protocols
Stars: ✭ 6,968 (+209.83%)
Mutual labels:  api, microservices, api-gateway, reverse-proxy
Service Proxy
API gateway for REST and SOAP written in Java.
Stars: ✭ 355 (-84.22%)
Mutual labels:  api, api-gateway, proxy, reverse-proxy
Apisix
The Cloud-Native API Gateway
Stars: ✭ 7,920 (+252.16%)
Mutual labels:  api, microservices, api-gateway, reverse-proxy
Tree Gateway
This is a full featured and free API Gateway
Stars: ✭ 160 (-92.89%)
Mutual labels:  api, microservices, api-gateway, proxy
Goku Api Gateway
A Powerful HTTP API Gateway in pure golang!Goku API Gateway (中文名:悟空 API 网关)是一个基于 Golang开发的微服务网关,能够实现高性能 HTTP API 转发、服务编排、多租户管理、API 访问权限控制等目的,拥有强大的自定义插件系统可以自行扩展,并且提供友好的图形化配置界面,能够快速帮助企业进行 API 服务治理、提高 API 服务的稳定性和安全性。
Stars: ✭ 2,773 (+23.3%)
Mutual labels:  api, microservices, api-gateway, proxy
Dubbo Go Pixiu
Based on the proxy gateway service of dubbo-go, it solves the problem that the external protocol calls the internal Dubbo cluster. At present, it supports HTTP and gRPC[developing].
Stars: ✭ 124 (-94.49%)
Mutual labels:  microservices, api-gateway, proxy
Spring Cloud Gateway
A Gateway built on Spring Framework 5.x and Spring Boot 2.x providing routing and more.
Stars: ✭ 3,305 (+46.95%)
Mutual labels:  microservices, api-gateway, proxy
Ergo
The management of multiple apps running over different ports made easy
Stars: ✭ 452 (-79.9%)
Mutual labels:  microservices, proxy, reverse-proxy
Manba
HTTP API Gateway
Stars: ✭ 3,000 (+33.39%)
Mutual labels:  api, api-gateway, proxy
Zato
ESB, SOA, REST, APIs and Cloud Integrations in Python
Stars: ✭ 889 (-60.47%)
Mutual labels:  api, microservices, api-gateway
Kong
🦍 The Cloud-Native API Gateway
Stars: ✭ 30,838 (+1271.19%)
Mutual labels:  microservices, api-gateway, reverse-proxy
Gravitee Gateway
Gravitee.io - API Management - OpenSource API Gateway
Stars: ✭ 1,123 (-50.07%)
Mutual labels:  api, microservices, api-gateway
Up
Up focuses on deploying "vanilla" HTTP servers so there's nothing new to learn, just develop with your favorite existing frameworks such as Express, Koa, Django, Golang net/http or others.
Stars: ✭ 8,439 (+275.23%)
Mutual labels:  api, microservices, api-gateway
Otoroshi
Lightweight api management on top of a modern http reverse proxy
Stars: ✭ 177 (-92.13%)
Mutual labels:  microservices, proxy, reverse-proxy
Aws Lambda Fastify
Insipired by aws-serverless-express to work with Fastify with inject functionality.
Stars: ✭ 190 (-91.55%)
Mutual labels:  api, api-gateway, proxy
Esp V2
A service proxy that provides API management capabilities using Google Service Infrastructure.
Stars: ✭ 120 (-94.66%)
Mutual labels:  api, api-gateway, proxy
Altair
Lightweight and Robust API Gateway written in Go
Stars: ✭ 34 (-98.49%)
Mutual labels:  api, api-gateway, reverse-proxy
Micro
Micro is a distributed cloud operating system
Stars: ✭ 10,778 (+379.24%)
Mutual labels:  api, microservices, platform

Janus

Build Status codecov GoDoc Go Report Card Join us on slack

An API Gateway written in Go

This is a lightweight API Gateway and Management Platform that enables you to control who accesses your API, when they access it and how they access it. Janus will also record detailed analytics on how your users are interacting with your API and when things go wrong.

Go version 1.9 or later is required to build master, the current development version. Janus is officially supported on linux/amd64, linux/i386, linux/arm64, darwin/i386, darwin/amd64, windows/i386 and windows/amd64.

Why Janus?

In ancient Roman religion and myth, Janus (/ˈdʒeɪnəs/; Latin: Ianus, pronounced [ˈjaː.nus]) is the god of beginnings, gates, transitions, time, doorways, passages, and endings. He is usually depicted as having two faces since he looks to the future and to the past. Wikipedia

We thought it would be nice to name the project after the God of the Gates 😄

What is an API Gateway?

An API Gateway sits in front of your application(s) and/or services and manages the heavy lifting of authorisation, access control and throughput limiting to your services. Ideally, it should mean that you can focus on creating services instead of implementing management infrastructure. For example, if you have written a really awesome web service that provides geolocation data for all the cats in NYC, and you want to make it public, integrating an API gateway is a faster, more secure route than writing your own authorisation middleware.

Key Features

This API Gateway offers powerful, yet lightweight features that allows fine-grained control over your API ecosystem.

  • No dependency hell, single binary made with go
  • REST API, full programatic access to the internals makes it easy to manage your API users, keys and API Configuration from within your systems
  • Hot-reloading of configuration. No need to restart the process
  • Graceful shutdown of http connections
  • OpenTracing support for Distributed tracing (Supports Google Cloud Platform and Jaeger)
  • HTTP/2 support
  • Circuit Breaker support that can be configured for each API
  • Retry mechanism to make your endpoints more resilient
  • Rate Limiting, easily rate limit your API users, rate limiting is granular and can be applied on a per-key basis
  • CORS Filter, enable cors for your API, or even for specific endpoints
  • Multiple auth protocols, out of the box, we support JWT, OAuth 2.0 and Basic Auth access methods
  • Small official docker image included

Installation

Note: All examples here and in the documentation will be using HTTPie for simplicity. But all requests can easily be converted to curl if needed.

Docker

The simplest way of installing Janus is to run the docker image for it. You can check our examples folder and you can find some good examples. All you got to do is:

cd examples/front-proxy

docker-compose up -d

Now you should be able to get a response from the gateway.

Try the following command:

http http://localhost:8081

Manual

You can get the binary and play with it in your own environment (or even deploy it where ever you like). Just go to the releases page and download the latest one for your platform.

Getting Started

Check out our quick start guide to get up to speed with Janus.

Contributing

To start contributing, please check CONTRIBUTING.

Documentation

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].