{"id":13425099,"url":"https://github.com/motiv-labs/janus","last_synced_at":"2025-05-14T20:07:52.313Z","repository":{"id":41154958,"uuid":"63067788","full_name":"motiv-labs/janus","owner":"motiv-labs","description":"An API Gateway written in Go","archived":false,"fork":false,"pushed_at":"2024-07-08T07:17:06.000Z","size":2965,"stargazers_count":2826,"open_issues_count":49,"forks_count":327,"subscribers_count":206,"default_branch":"master","last_synced_at":"2025-04-11T06:18:44.927Z","etag":null,"topics":["api","api-gateway","engineering-experience-squad","go","microservices","platform","proxy","reverse-proxy"],"latest_commit_sha":null,"homepage":"https://hellofresh.gitbooks.io/janus","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/motiv-labs.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-07-11T12:54:21.000Z","updated_at":"2025-03-29T21:55:44.000Z","dependencies_parsed_at":"2023-07-13T09:00:32.787Z","dependency_job_id":"60a203ca-185c-4dd2-9357-cb16a0225906","html_url":"https://github.com/motiv-labs/janus","commit_stats":null,"previous_names":["hellofresh/janus"],"tags_count":450,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/motiv-labs%2Fjanus","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/motiv-labs%2Fjanus/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/motiv-labs%2Fjanus/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/motiv-labs%2Fjanus/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/motiv-labs","download_url":"https://codeload.github.com/motiv-labs/janus/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248351629,"owners_count":21089316,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api","api-gateway","engineering-experience-squad","go","microservices","platform","proxy","reverse-proxy"],"created_at":"2024-07-31T00:01:04.618Z","updated_at":"2025-04-11T06:18:53.375Z","avatar_url":"https://github.com/motiv-labs.png","language":"Go","funding_links":[],"categories":["Go","Gateways"],"sub_categories":["Vectors"],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg height=\"150\" src=\"./janus-logo.png\"  alt=\"Janus\" title=\"Janus\"\u003e\n\u003c/p\u003e\n\n[![Build Status](https://travis-ci.org/hellofresh/janus.svg?branch=master)](https://travis-ci.org/hellofresh/janus)\n[![codecov](https://codecov.io/gh/hellofresh/janus/branch/master/graph/badge.svg)](https://codecov.io/gh/hellofresh/janus)\n[![GoDoc](https://godoc.org/github.com/hellofresh/janus?status.svg)](https://godoc.org/github.com/hellofresh/janus)\n[![Go Report Card](https://goreportcard.com/badge/github.com/hellofresh/janus)](https://goreportcard.com/report/github.com/hellofresh/janus)\n[![Join us on slack](https://img.shields.io/badge/chat-on%20slack-brightgreen.svg)](https://join.slack.com/t/janus-gw/shared_invite/enQtNTM1MDE3Mjg0ODIxLTVhNmQwODBmYTE1MmI5MDZiY2ZhN2ZmOGFiMGZmZTZmMzMxMTQ1MzA0NzY4ODA5Zjg1YzczNzg0ZjcwYjQwMjA)\n\n\n\u003e An API Gateway written in Go\n\nThis 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.\n\nGo 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`.\n\n## Why Janus?\n\n\u003e In ancient Roman religion and myth, Janus (/ˈdʒeɪnəs/; Latin: Ianus, pronounced [ˈjaː.nus]) is the god of beginnings,\ngates, transitions, time, doorways, passages, and endings. He is usually depicted as having two faces since he\nlooks to the future and to the past. [Wikipedia](https://en.wikipedia.org/wiki/Janus)\n\nWe thought it would be nice to name the project after the God of the Gates :smile:\n\n## What is an API Gateway?\n\nAn API Gateway sits in front of your application(s) and/or services and manages the heavy lifting of authorisation,\naccess control and throughput limiting to your services. Ideally, it should mean that you can focus on creating\nservices instead of implementing management infrastructure. For example, if you have written a really awesome\nweb service that provides geolocation data for all the cats in NYC, and you want to make it public,\nintegrating an API gateway is a faster, more secure route than writing your own authorisation middleware.\n\n## Key Features\n\nThis API Gateway offers powerful, yet lightweight features that allows fine-grained control over your API ecosystem.\n\n* No dependency hell, single binary made with go\n* REST API, full programatic access to the internals makes it easy to manage your API users, keys and API Configuration from within your systems\n* Hot-reloading of configuration. No need to restart the process\n* Graceful shutdown of http connections\n* [OpenTracing](http://opentracing.io/) support for Distributed tracing (Supports Google Cloud Platform and Jaeger)\n* HTTP/2 support\n* Circuit Breaker support that can be configured for each API\n* Retry mechanism to make your endpoints more resilient\n* Rate Limiting, easily rate limit your API users, rate limiting is granular and can be applied on a per-key basis\n* CORS Filter, enable cors for your API, or even for specific endpoints\n* Multiple auth protocols, out of the box, we support JWT, OAuth 2.0 and Basic Auth access methods\n* Small [official](https://hub.docker.com/repository/docker/hellofreshtech/janus) docker image included\n\n## Installation\n\n\u003e Note: All examples here and in the documentation will be using [HTTPie](https://httpie.org/) for simplicity. But all requests can easily be converted to `curl` if needed.\n\n### Docker\n\nThe simplest way of installing Janus is to run the docker image for it. You can check our [examples](/examples) folder and you can find some good examples. All you got to do is:\n\n```sh\ncd examples/front-proxy\n\ndocker-compose up -d\n```\n\nNow you should be able to get a response from the gateway.\n\nTry the following command:\n\n```sh\nhttp http://localhost:8081\n```\n\n### Manual\n\nYou can get the binary and play with it in your own environment (or even deploy it where ever you like).\nJust go to the [releases](https://github.com/hellofresh/janus/releases) page and download the latest one for your platform.\n\n## Getting Started\n\nCheck out our [quick start guide](https://hellofresh.gitbooks.io/janus/quick_start) to get up to speed with Janus.\n\n## Contributing\n\nTo start contributing, please check [CONTRIBUTING](CONTRIBUTING.md).\n\n## Documentation\n\n* Janus Docs: https://hellofresh.gitbooks.io/janus\n* Janus Go Docs: https://godoc.org/github.com/hellofresh/janus\n* Go lang: https://golang.org/\n\n##\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://hellofresh.com\" style=\"text-decoration:none; margin-right:2rem;\"\u003e\n    \u003cimg height=\"110\" src=\"https://www.hellofresh.de/images/hellofresh/press/HelloFresh_Logo.png\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmotiv-labs%2Fjanus","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmotiv-labs%2Fjanus","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmotiv-labs%2Fjanus/lists"}