• Stars
    star
    199
  • Rank 189,936 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created about 10 years ago
  • Updated 6 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Golang package to handle HAProxy Proxy Protocol

proxyproto

This library provides the proxyproto package which can be used for servers listening behind HAProxy of Amazon ELB load balancers. Those load balancers support the use of a proxy protocol (http://haproxy.1wt.eu/download/1.5/doc/proxy-protocol.txt), which provides a simple mechansim for the server to get the address of the client instead of the load balancer.

This library provides both a net.Listener and net.Conn implementation that can be used to handle situation in which you may be using the proxy protocol. Only proxy protocol version 1, the human-readable form, is understood.

The only caveat is that we check for the "PROXY " prefix to determine if the protocol is being used. If that string may occur as part of your input, then it is ambiguous if the protocol is being used and you may have problems.

Documentation

Full documentation can be found here.

Examples

Using the library is very simple:


// Create a listener
list, err := net.Listen("tcp", "...")

// Wrap listener in a proxyproto listener
proxyList := &proxyproto.Listener{Listener: list}
conn, err :=proxyList.Accept()

...

More Repositories

1

go-socks5

SOCKS5 server in Golang
Go
1,844
star
2

bloomd

C network daemon for bloom filters
C
1,238
star
3

go-radix

Golang implementation of Radix trees
Go
850
star
4

libart

Adaptive Radix Trees implemented in C
C
745
star
5

hlld

C network daemon for HyperLogLogs
C
446
star
6

circbuf

Golang circular (ring) buffer
Go
168
star
7

relay

Golang framework for simple message passing using an AMQP broker
Go
130
star
8

go-chord

Golang implementation of the Chord protocol
Go
130
star
9

consul-api

Golang API client for Consul
Go
123
star
10

erl-rstar

An Erlang implementation of the R*-tree spacial data structure
Erlang
59
star
11

pypred

A Python library for simple evaluation of natural language predicates
Python
57
star
12

c-minheap-array

Implements a Min-Heap / Priority Queue in C using a simple array.
C
54
star
13

counterd

A lightweight daemon for counting unique events using Redis and PostgreSQL
Go
35
star
14

consul-kv

Golang K/V client for Consul
Go
33
star
15

DjangoProjectExample

An example Django project
Python
28
star
16

c-minheap-indirect

Implements a Min-Heap / Priority Queue in C using an indirection table for memory efficiency.
C
28
star
17

go-hlld

Golang client for HyperLogLog daemon (hlld)
Go
21
star
18

cse473-ai-csp

A Constraint Satisfaction Solver (CSP) using Backtracking and Forward Checking
Java
21
star
19

cuda-hll

A CUDA accelerated utility for using HyperLogLog's for cardinality estimation
18
star
20

teles

An Erlang network service for manipulating geographic data
Erlang
15
star
21

bloomd_ring

Provides a Riak core interface to bloomd to allow for horizontal scalability and high availability
Erlang
14
star
22

Erlang-Naive-Bayes-Movies

An Erlang naive bayes text classifier to classify movie reviews as positive or negative.
Erlang
13
star
23

pyhlld

A Python driver for the hlld server
Python
10
star
24

ememcached

An Erlang Implementation of the Memcached binary protocol
Erlang
9
star
25

erl-bloomd

An Erlang driver for speaking the Bloomd network protocol
Erlang
8
star
26

DotFiles

Misc. dot files
Vim Script
3
star
27

pyteles

A Python client for the Teles server
Python
1
star