https://github.com/hslam/buffer
Package buffer implements a variable-sized bytes pool.
https://github.com/hslam/buffer
buffer bytes go golang pool
Last synced: 12 months ago
JSON representation
Package buffer implements a variable-sized bytes pool.
- Host: GitHub
- URL: https://github.com/hslam/buffer
- Owner: hslam
- License: mit
- Created: 2021-03-24T02:34:26.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-17T20:28:59.000Z (over 3 years ago)
- Last Synced: 2025-03-30T11:32:41.531Z (about 1 year ago)
- Topics: buffer, bytes, go, golang, pool
- Language: Go
- Homepage:
- Size: 28.3 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# buffer
[](https://pkg.go.dev/github.com/hslam/buffer)
[](https://github.com/hslam/buffer/actions)
[](https://codecov.io/gh/hslam/buffer)
[](https://goreportcard.com/report/github.com/hslam/buffer)
[](https://github.com/hslam/buffer/blob/master/LICENSE)
Package buffer implements a variable-sized bytes pool.
## Get started
### Install
```
go get github.com/hslam/buffer
```
### Import
```
import "github.com/hslam/buffer"
```
### Usage
#### Simple Example
```go
package main
import (
"github.com/hslam/buffer"
)
func main() {
buf := buffer.GetBuffer(1024)
buffer.PutBuffer(buf)
}
```
#### Example
```go
package main
import (
"github.com/hslam/buffer"
)
func main() {
buffers := buffer.NewBuffers(1024)
size := 65536
buf := buffers.GetBuffer(size)
buffers.PutBuffer(buf)
p := buffers.AssignPool(size)
buf = p.GetBuffer(size)
p.PutBuffer(buf)
}
```
### Benchmark
go test -bench=. -benchmem -benchtime=10s -timeout 30m
```
goos: darwin
goarch: amd64
pkg: github.com/hslam/buffer
BenchmarkAssignPool-8 1000000000 4.507 ns/op 0 B/op 0 allocs/op
BenchmarkAssignSizedPool-8 699822374 16.72 ns/op 0 B/op 0 allocs/op
BenchmarkBuffers-8 254406498 46.63 ns/op 24 B/op 1 allocs/op
BenchmarkSizedBuffer-8 302837005 39.32 ns/op 24 B/op 1 allocs/op
PASS
ok github.com/hslam/buffer 51.466s
```
## License
This package is licensed under a MIT license (Copyright (c) 2021 Meng Huang)
## Author
buffer was written by Meng Huang.