Skip to content

syucream/ts_mruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

383ad1b · Dec 11, 2016
Nov 23, 2016
Sep 28, 2016
Jul 2, 2016
Nov 7, 2016
Nov 6, 2016
Nov 26, 2016
Dec 10, 2016
Sep 17, 2016
Jul 25, 2016
Nov 6, 2016
Nov 14, 2016
Apr 28, 2014
Apr 28, 2014
Nov 29, 2016
Aug 4, 2016
Jun 29, 2016
Apr 28, 2014
Nov 7, 2016
Nov 29, 2016
Nov 29, 2016
Jul 25, 2016
Aug 4, 2016

Repository files navigation

ts_mruby

Build Status Coverage Status

Enchant Apache Traffic Server with mruby power.

what's ts_mruby?

ts_mruby is an Apache Traffic Server plugin that provides more flexible and extensible server configuration. You can write the configuration by mruby, and use mrbgems modules. ... And maybe the plugin support common syntax as part of the mod_mruby and ngx_mruby.

See Wiki for more documents.

Requirements

  • C++11

  • Apache Traffic Server >= 4.2.x with atscppapi

    • To enable atscppapi, you should give the below option when you execute ./configure
./configure --enable-cppapi
  • mruby

Examples

For example, you can write an ip filtering logic by using mruby like DSL:

whitelist = [
  "127.0.0.1"
]

# deny if client IP is listed in whitelist
conn = ATS::Connection.new
unless whitelist.include?(conn.remote_ip)
  ATS::echo "Your access is not allowed ..."
  ATS::return ATS::HTTP_FORBIDDEN
end

Quickstart

using Docker

  • Example docker image has already published to Docker Hub. The image contains a test script(simply responds by ATS::echo), so you can test ts_mruby quickly:
$ docker pull syucream/ts_mruby
$ docker run -it syucream/ts_mruby /bin/bash
root@ad7a82be8a65:/opt# trafficserver start
root@ad7a82be8a65:/opt# curl http://localhost:8080/
ts_mruby test

using Homebrew

  • If you're a Mac OS X user, you can use Homebrew to install ts_mruby:
$ brew install https://raw.githubusercontent.com/syucream/ts_mruby/master/Formula/trafficserver-atscppapi.rb
$ brew install --HEAD https://raw.githubusercontent.com/syucream/ts_mruby/master/Formula/ts_mruby.rb

Acknowledgement

Some components for mruby in this repository and sample scripts refer to mod_mruby and ngx_mruby's one under the MIT License.