Coder Social home page Coder Social logo

rider's Introduction

Rider

Introduction

Rider is a plugin framework which allows you to write Lua plugin for Envoy.

Features:

  • Rider provide a SDK for plugin development.
  • Most of SDK functions are implemented using FFI, which is much more fast compared to pure Lua functions.
  • You can configure Lua plugin like other Envoy HTTP filters, and choose which configuration to use at runtime.
  • You can add custom configuration validators. Rider provide a json schema validator by default.
  • Lua plugin can be hot reload or load at runtime like Envoy HTTP filters.

Rider contains two components:

Docs

Get started

Plugin configuration

Plugin development

SDK

TODO

  • Support L4 plugin
  • Support timer, metrics and other features supported by Envoy Wasm filter
  • Support load plugin code from remote

Thanks

The design of Rider comes from these awesome projects:

  • OpenResty: we learn from its source code about the implementation of FFI binding.
  • Envoy Lua filter and Wasm filter: Rider HTTP filter is modified from Envoy Lua filter and the design refers to the Wasm filter.
  • Kong: the SDK API style is from OpenResty and Kong's PDK.

Rider is started from an internal project at Netease. The original goal is to allow users write Lua plugins for Envoy API Gateway, like Kong plugins. The first version was written by YuXing Zeng, and then rewritten by Tong Cai and BaiPing Wang.

The latest version of Rider refers to spec and implementation of Wasm filter. It's a design goal to provide a consistent user exprrience as Wasm filter.

Notes

Internal version of Rider has been stable and used on production for a long time, tested with high concurrency and large traffic. But open source version is still under development, so there is no garantee for stability. Please do as much as possible tests before use it on production.

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.