Surrogate is an HTTP proxy functioning in both forward and reverse proxy modes. It is written in Erlang OTP and uses stream filters for inspecting and modifying data as it passes through the proxy. Additional stream filters can be implemented by writing modules that implement the filter_stream behavior. Reverse proxy features include load balancing. Additional balancer methods can be specified by implementing modules with the gen_balancer behavior. Forward proxy features include gzip compression to end servers, CONNECT support, and an HTTP proxy with authentication that can use MySQL or Mnesia backends. There is also a SOCKS 4/5 proxy listener.
epers stands for "Erlang persistence". As the name suggests, it tries to make it easy to use databases in Erlang programs, to make the language a little more agile, and (humbly) offer a nice adapter for several databases, hiding their implementation details (and the API of the library/framework/driver used to communicate with them). To achieve this, it aims to offer a somewhat consistent API to define and work with your model, while at the same not coupling your code too tightly to it.