All Projects → gotway → gotway

gotway / gotway

Licence: MIT license
☸️ Cloud native API Gateway powered with in-redis cache

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
shell
77523 projects
Dockerfile
14818 projects

Projects that are alternatives of or similar to gotway

Kong
🦍 The Cloud-Native API Gateway
Stars: ✭ 30,838 (+43333.8%)
Mutual labels:  api-gateway, cloud-native
Product Microgateway
A cloud native, developer centric and decentralized API gateway for microservices
Stars: ✭ 194 (+173.24%)
Mutual labels:  api-gateway, cloud-native
Grpcjsontranscoder
A filter which allows a RESTful JSON API client to send requests to .NET web server over HTTP and get proxied to a gRPC service
Stars: ✭ 97 (+36.62%)
Mutual labels:  api-gateway, cloud-native
Ambassador
open source Kubernetes-native API gateway for microservices built on the Envoy Proxy
Stars: ✭ 3,583 (+4946.48%)
Mutual labels:  api-gateway, cloud-native
Helmet
🐺 A Lightweight Cloud Native API Gateway.
Stars: ✭ 124 (+74.65%)
Mutual labels:  api-gateway, cloud-native
Apioak
Full Lifecycle Management API Gateway.
Stars: ✭ 335 (+371.83%)
Mutual labels:  api-gateway, cloud-native
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 (+74.65%)
Mutual labels:  api-gateway, cloud-native
semaphore
Take control of your data, connect with anything, and expose it anywhere through protocols such as HTTP, GraphQL, and gRPC.
Stars: ✭ 74 (+4.23%)
Mutual labels:  api-gateway, cloud-native
kubernetes-automation-toolkit
This repository contains code examples and documentation for learning how applications can be developed with Kubernetes
Stars: ✭ 51 (-28.17%)
Mutual labels:  ingress, cloud-native
django-on-k8s
An end to end tutorial to run a Django Web Application having a PostgreSQL database in Kubernetes
Stars: ✭ 37 (-47.89%)
Mutual labels:  helm, ingress
Gloo
The Feature-rich, Kubernetes-native, Next-Generation API Gateway Built on Envoy
Stars: ✭ 3,219 (+4433.8%)
Mutual labels:  api-gateway, cloud-native
certificate-expiry-monitor-controller
Certificate Expiry Monitor Controller monitors the expiration of TLS certificates used in Ingress.
Stars: ✭ 114 (+60.56%)
Mutual labels:  ingress, kubernetes-controller
Citrix K8s Ingress Controller
Citrix ADC (NetScaler) Ingress Controller for Kubernetes:
Stars: ✭ 256 (+260.56%)
Mutual labels:  api-gateway, ingress
Apisix
The Cloud-Native API Gateway
Stars: ✭ 7,920 (+11054.93%)
Mutual labels:  api-gateway, cloud-native
hango-gateway
Hango API Gateway, build on Envoy & Istio.
Stars: ✭ 306 (+330.99%)
Mutual labels:  api-gateway, cloud-native
Apisix Docker
the docker for Apache APISIX
Stars: ✭ 119 (+67.61%)
Mutual labels:  api-gateway, cloud-native
Devspace
DevSpace - The Fastest Developer Tool for Kubernetes ⚡ Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes.
Stars: ✭ 2,559 (+3504.23%)
Mutual labels:  helm, cloud-native
Ingress
WIP Caddy 2 ingress controller for Kubernetes
Stars: ✭ 200 (+181.69%)
Mutual labels:  helm, ingress
Krakend Ce
KrakenD Community Edition. Make your binary of KrakenD API Gateway
Stars: ✭ 245 (+245.07%)
Mutual labels:  api-gateway, cloud-native
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: ✭ 385 (+442.25%)
Mutual labels:  api-gateway, cloud-native

☸️ gotway

CI Release Go Report Card Go Reference Artifact HUB

Cloud native API Gateway powered with in-redis cache.

  • API composition: expose your services to the internet using a single endpoint
  • Cloud native: configure routing and cache using Kubernetes CRDs
  • In-memory cache using redis
  • Cache invalidation using tags
  • Health checking
  • Management REST API
  • ~6MB Docker image available for multiple architectures
  • Helm chart

Installation

helm repo add mmontes https://charts.mmontes-dev.duckdns.org
helm repo add gotway https://charts.gotway.duckdns.org
helm install redis mmontes/redis
helm install gotway gotway/gotway

Quickstart

We will need microservices to route to in order to test Gotway, you can deploy some by running:

helm upgrade --install gotway gotway/gotway --set examples.enabled=true

Let's register the catalog service into Gotway by creating an IngressHTTP CRD:

kubectl apply -f ./manifests/examples/catalog.yml 
apiVersion: gotway.io/v1alpha1
kind: IngressHTTP
metadata:
  name: catalog
spec:
  match:
    host: catalog.gotway.duckdns.org:9111
  service:
    name: catalog
    url: http://gotway-catalog
    healthPath: /health
  cache:
    ttl: 30
    statuses:
      - 200
      - 404
    tags:
      - "catalog"
      - "products"

We are now able to route requests through Gotway:

curl -k --request GET 'https://catalog.gotway.duckdns.org:9111/products' | jq
{
    "products": [
        {
            "id": 911902081,
            "name": "sneakers",
            "price": 69000,
            "color": "white",
            "size": "42"
        }
    ],
    "totalCount": 1
}

This response has a TTL of 30 seconds, let's invalidate the cache for the catalog service by providing one of its tags:

curl -k --request DELETE 'https://gotway.duckdns.org:9111/api/cache' \
--header 'Content-Type: application/json' \
--data-raw '{
    "tags": ["catalog"]
}'

Management REST API

Run in Postman

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].