summaryrefslogtreecommitdiff
path: root/vendor/github.com/oxtoacart/bpool/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/oxtoacart/bpool/README.md')
-rw-r--r--vendor/github.com/oxtoacart/bpool/README.md65
1 files changed, 65 insertions, 0 deletions
diff --git a/vendor/github.com/oxtoacart/bpool/README.md b/vendor/github.com/oxtoacart/bpool/README.md
new file mode 100644
index 0000000..9acf3f9
--- /dev/null
+++ b/vendor/github.com/oxtoacart/bpool/README.md
@@ -0,0 +1,65 @@
+# bpool [![GoDoc](https://godoc.org/github.com/oxtoacart/bpool?status.png)](https://godoc.org/github.com/oxtoacart/bpool)
+
+Package bpool implements leaky pools of byte arrays and Buffers as bounded channels.
+It is based on the leaky buffer example from the Effective Go documentation: http://golang.org/doc/effective_go.html#leaky_buffer
+
+bpool provides the following pool types:
+
+* [bpool.BufferPool](https://godoc.org/github.com/oxtoacart/bpool#BufferPool)
+ which provides a fixed-size pool of
+ [bytes.Buffers](http://golang.org/pkg/bytes/#Buffer).
+* [bpool.BytePool](https://godoc.org/github.com/oxtoacart/bpool#BytePool) which
+ provides a fixed-size pool of `[]byte` slices with a pre-set width (length).
+* [bpool.SizedBufferPool](https://godoc.org/github.com/oxtoacart/bpool#SizedBufferPool),
+ which is an alternative to `bpool.BufferPool` that pre-sizes the capacity of
+ buffers issued from the pool and discards buffers that have grown too large
+ upon return.
+
+A common use case for this package is to use buffers to execute HTML templates
+against (via ExecuteTemplate) or encode JSON into (via json.NewEncoder). This
+allows you to catch any rendering or marshalling errors prior to writing to a
+`http.ResponseWriter`, which helps to avoid writing incomplete or malformed data
+to the response.
+
+## Install
+
+`go get github.com/oxtoacart/bpool`
+
+## Documentation
+
+See [godoc.org](http://godoc.org/github.com/oxtoacart/bpool) or use `godoc github.com/oxtoacart/bpool`
+
+## Example
+
+Here's a quick example for using `bpool.BufferPool`. We create a pool of the
+desired size, call the `Get()` method to obtain a buffer for use, and call
+`Put(buf)` to return the buffer to the pool.
+
+```go
+
+var bufpool *bpool.BufferPool
+
+func main() {
+
+ bufpool = bpool.NewBufferPool(48)
+
+}
+
+func someFunction() error {
+
+ // Get a buffer from the pool
+ buf := bufpool.Get()
+ ...
+ ...
+ ...
+ // Return the buffer to the pool
+ bufpool.Put(buf)
+
+ return nil
+}
+```
+
+## License
+
+Apache 2.0 Licensed. See the LICENSE file for details.
+