8000 GitHub - Syd/em-proxy: EventMachine proxies for performance, monitoring and scale
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Syd/em-proxy

Go to file
 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

EM-Proxy

EventMachine Proxy DSL for writing high-performance transparent / intercepting proxies in Ruby.

Getting started

# install & configure gemcutter repos
gem update --system
gem install gemcutter
gem tumble

gem install em-proxy

irb:0> require 'em-proxy'

Simple port forwarding proxy

Proxy.start(:host => "0.0.0.0", :port => 80, :debug => true) do |conn|
  conn.server :srv, :host => "127.0.0.1", :port => 81

  # modify / process request stream
  conn.on_data do |data|
    p [:on_data, data]
    data
  end

  # modify / process response stream
  conn.on_response do |backend, resp|
    p [:on_response, backend, resp]
    resp
  end

  # termination logic
  conn.on_finish do |backend, name|
    p [:on_finish, name]

    # terminate connection (in duplex mode, you can terminate when prod is done)
    unbind if backend == :srv
  end
end

For more examples see the /examples directory.

  • SMTP Spam Filtering

  • Duplicating traffic

  • Selective forwarding

  • Beanstalkd interceptor

  • etc.

About

EventMachine proxies for performance, monitoring and scale

Resources

Stars

Watchers

Forks

3139

Releases

No releases published

Packages

No packages published

Languages

  • Ruby 100.0%
0