Coder Social home page Coder Social logo

suryatmodulus / j8a Goto Github PK

View Code? Open in Web Editor NEW

This project forked from simonmittag/j8a

0.0 1.0 0.0 14.74 MB

j8a [ dʒʌbbʌ ] is a modern TLS 1.3 reverse proxy server designed to front your micro-service JSON APIs. It was created to better meet the needs of devops engineers who need fine-grained visibility of, and better control over HTTP traffic without sacrificing performance

License: Apache License 2.0

Lua 3.24% Go 96.70% Dockerfile 0.06%

j8a's Introduction

Circleci Builds Github Workflows Dependabot Github Issues Github Activity
Go Report Codeclimate Maintainability Codeclimate Test Coverage SSLLabs Rating Go Version License Docker Pulls Version

What's new?

v0.9.5 (16/06/2022)

  • now logging ulimit (max open files) so admin has visibility next to maxopenconns

v0.9.4 (14/06/2022)

  • changes to standard log levels. All server internal messages now at info, downstream at debug, upstream data at trace level.

v0.9.3 (12/06/2022)

  • Added homebrew distribution under brew tap simonmittag/cli
  • Added thread logging and upstream connection logging
  • bumped gojq 0.12.8, lestrrat-go/jwx 1.2.25, klauspost/compress 1.15.6

v0.9.2 (12/04/2022)

  • Shorter default http upstream timeout, for details see https://j8a.io/docs
  • upgraded jwx dependency to v1.2.22

What is j8a?

j8a [ dʒʌbbʌ ] is a modern TLS 1.3 reverse proxy server designed as a lightweight API gateway for micro-service style JSON APIs. It is built for DevOps engineers and allows fine-grained traceability of HTTP and Websocket traffic without sacrificing performance.

Features

  • Fast! 5k POST req/s traffic.
  • Secure. TLS1.2, TLS/1.3 termination w/ A+ SSLLabs rating.
  • Zero downtime. Auto-renew certs using ACME RFC 8555.
  • Observable. API request tracing w/ correlation ID for upstream micro-services.
  • APM. CPU, memory logging built-in. Daily TLS health and validity check for your full certificate chain.
  • JWT token validation with full JWK(S) support for RFC 7519.
  • HTTP/1.1 and HTTP/2 support w/ upstream <> downstream protocol translation.
  • Websocket Support for RFC 6455
  • Docker native

Up and running

Docker

docker pull simonmittag/j8a &&
  docker run -e J8ACFG_YML -p443:443 simonmittag/j8a

Homebrew

brew tap simonmittag/cli && 
  brew install j8a && 
  j8a

Golang

go install github.com/simonmittag/j8a/cmd/j8a &&
  j8a

Configuration

Environment Variables

J8ACFG_YML

Supply the server configuration to the running process in .yml format

J8ACFG_YML="---
            connection:
              downstream:
                readTimeoutSeconds: 3
                roundTripTimeoutSeconds: 20
                idleTimeoutSeconds: 30
                http:
                  port: 80
                maxBodyBytes: 65535
              upstream:
                socketTimeoutSeconds: 3
                readTimeoutSeconds: 30
                idleTimeoutSeconds: 10
                maxAttempts: 4
                poolSize: 8
                tlsInsecureSkipVerify: true
            routes:
              - path: "/todos"
                resource: jsonplaceholder
            resources:
              jsonplaceholder:
                - url:
                    scheme: https
                    host: jsonplaceholder.typicode.com
                    port: 443"

LOGLEVEL

Loglevel for stdout, one of TRACE, DEBUG, INFO or WARN

LOGLEVEL="DEBUG"

TZ

TimeZone

TZ="Australia/Sydney"

Contributions

The j8a team welcomes all contributors. Everyone interacting with the project's codebase, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.