From 8076ca2042fac1f89ece1dd8186b7fee3c0183ef Mon Sep 17 00:00:00 2001 From: "Artyom V. Poptsov" Date: Sun, 11 Aug 2024 00:09:53 +0300 Subject: gnu: Add go-github-com-libp2p-go-buffer-pool. * gnu/packages/golang-xyz.scm (go-github-com-libp2p-go-buffer-pool): New variable. Change-Id: Id4de38a91dd7186e1aa6f06289c6bfa2cb0abbbb Signed-off-by: Sharlatan Hellseher --- gnu/packages/golang-xyz.scm | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'gnu') diff --git a/gnu/packages/golang-xyz.scm b/gnu/packages/golang-xyz.scm index ae0b481ae5..9420fa16c4 100644 --- a/gnu/packages/golang-xyz.scm +++ b/gnu/packages/golang-xyz.scm @@ -3389,6 +3389,44 @@ (define-public go-github-com-lib-pq database/sql package.") (license license:expat))) +(define-public go-github-com-libp2p-go-buffer-pool + (package + (name "go-github-com-libp2p-go-buffer-pool") + (version "0.1.0") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/libp2p/go-buffer-pool") + (commit (string-append "v" version)))) + (file-name (git-file-name name version)) + (sha256 + (base32 "0514rsnin6wjqifpg66dp5nrwh40smqlkgs3kxyz9cansi78c2n1")))) + (build-system go-build-system) + (arguments + (list + #:import-path "github.com/libp2p/go-buffer-pool")) + (home-page "https://github.com/libp2p/go-buffer-pool") + (synopsis "Variable size buffer pool for Golang") + (description + "This package provides a variable size buffer pool for Golang. + +@code{go-buffer-pool} provides: +@itemize +@item @code{BufferPool}: A pool for re-using byte slices of varied sizes. +This pool will always return a slice with at least the size requested and a capacity +up to the next power of two. Each size class is pooled independently which makes the +@code{BufferPool} more space efficient than a plain @code{sync.Pool} when used in +situations where data size may vary over an arbitrary range. +@item @code{Buffer}: a buffer compatible with @code{bytes.Buffer} but backed by a +@code{BufferPool}. Unlike @code{bytes.Buffer}, @code{Buffer} will automatically +shrink on read, using the buffer pool to avoid causing too much work for the +allocator. This is primarily useful for long lived buffers that usually sit empty. +@end itemize") + ;; There are two license files provided by the project: LICENSE and + ;; LICENSE-BSD. + (license (list license:expat license:bsd-3)))) + (define-public go-github-com-logrusorgru-aurora (package (name "go-github-com-logrusorgru-aurora") -- cgit v1.2.3