A []byte pool for Go.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.travis.yml
CHANGELOG.md
LICENSE
README.md
pool.go
pool_test.go
pre-commit

README.md

gomempool

Build Status

A []byte pool implementation for Go.

Go network programs can get into a bit of garbage collection trouble if they are constantly allocating buffers of []byte to process network requests. This library gives you an interface you can program to to easily re-use []bytes without too much additional work. It also provides statistics so you can query how well the Pool is working for you.

This is fully covered with godoc, including examples, motivation, and everything else you might otherwise expect from a README.md on GitHub. (DRY.)

This is currently at version 1.0.0, and can imported via gopkg.in/thejerf/gomempool.v1 if you like. Semantic versioning will be used for version numbers.

Code Signing

Starting with commit f94a124, I will be signing this repository with the "jerf" keybase account. If you are viewing this repository through GitHub, you should see the commits as showing as "verified" in the commit view.

(Bear in mind that due to the nature of how git commit signing works, there may be runs of unverified commits; what matters is that the top one is signed.)

sync.Pool

"What about sync.Pool?" sync.Pool efficiently pools a homogeneous collection of objects, whereas the focus of gomempool here is explicitly on heterogeneous []bytes. They don't overlap much.