An open API service providing package, version and dependency metadata of many open source software ecosystems and registries.

github.com/eapache/channels

Package channels provides a collection of helper functions, interfaces and implementations for working with and extending the capabilities of golang's existing channels. The main interface of interest is Channel, though sub-interfaces are also provided for cases where the full Channel interface cannot be met (for example, InChannel for write-only channels). For integration with native typed golang channels, functions Wrap and Unwrap are provided which do the appropriate type conversions. The NativeChannel, NativeInChannel and NativeOutChannel type definitions are also provided for use with native channels which already carry values of type interface{}. The heart of the package consists of several distinct implementations of the Channel interface, including channels backed by special buffers (resizable, infinite, ring buffers, etc) and other useful types. A "black hole" channel for discarding unwanted values (similar in purpose to ioutil.Discard or /dev/null) rounds out the set. Helper functions for operating on Channels include Pipe and Tee (which behave much like their Unix namesakes), as well as Multiplex and Distribute. "Weak" versions of these functions also exist, which do not close their output channel(s) on completion. Due to limitations of Go's type system, importing this library directly is often not practical for production code. It serves equally well, however, as a reference guide and template for implementing many common idioms; if you use it in this way I would appreciate the inclusion of some sort of credit in the resulting code. Warning: several types in this package provide so-called "infinite" buffers. Be *very* careful using these, as no buffer is truly infinite - if such a buffer grows too large your program will run out of memory and crash. Caveat emptor.

Ecosystem
proxy.golang.org
Latest Release
v1.1.0
about 10 years ago
Versions
2
Dependent Packages
418
Dependent Repos
787
Links
Registry proxy.golang.org
Source Repository
Docs Documentation
JSON API View JSON
CodeMeta codemeta.json
Package Details
PURL pkg:golang/github.com/eapache/channels
spec
License MIT
Namespace github.com/eapache
First Release about 11 years ago
Last Synced about 21 hours ago
Repository
Stars 809 on GitHub
Forks 68 on GitHub
Docker Dependents 261
Docker Downloads 317,990,251
Commits 107
Committers 1
Avg per Author 107.0
DDS 0.0
Rankings on proxy.golang.org
Overall Top 1.2%
Dependent packages Top 0.2%
Dependent repos Top 0.3%
Forks Top 3.0%
Docker downloads Top 0.2%