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

j8a's People

Contributors

dependabot[bot] avatar intermernet avatar mayankgandhe avatar simonmittag avatar

Watchers

 avatar

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.