fun
所属分类:工具库
开发工具:GO
文件大小:0KB
下载次数:0
上传日期:2023-12-31 12:39:36
上 传 者:
sh-1993
说明: Go基本实用程序库,具有futures、迭代器、pubsub编程、人机工程学数据类型和管道编程。没有第三方依赖项。
(Go basic utility library with futures, iterators, pubsub programming, ergonomic data types, and pipeline programming. Has no third-party dependencies.)
文件列表:
adt/
assert/
dt/
ensure/
erc/
ers/
ft/
internal/
intish/
itertool/
pubsub/
risky/
srv/
testt/
.golangci.yml
LICENSE
chan.go
chan_test.go
constructor.go
constructor_test.go
future.go
future_test.go
go.mod
go.sum
handler.go
handler_test.go
iterator.go
iterator_test.go
operation.go
operation_test.go
opts.go
opts_test.go
panic.go
panic_test.go
process.go
process_test.go
producer.go
# fun -- Go Generic Functions and Tools
[![Go Reference](https://pkg.go.dev/badge/github.com/tychoish/fun.svg)](https://pkg.go.dev/github.com/tychoish/fun)
``fun`` is a simple, well tested, zero-dependency, collection of
packages with generic function, tools, patterns, and the kind of thing
you *could* write one-offs for but shouldn't.
Packages:
- [erc](https://pkg.go.dev/github.com/tychoish/fun/erc) (error
collection utilites.)
- [ers](https://pkg.go.dev/github.com/tychoish/fun/erc) (error and
panic handling utilites.)
- [dt](https://pkg.go.dev/github.com/tychoish/fun/dt) (generic
container datatypes, including ordered and unordered sets, singly
and doubly linked list, as well as wrappers around maps and slices.)
- [ft](https://pkg.go.dev/github.com/tychoish/fun/ft) function tools:
simple tools for handling function objects.
- [adt](https://pkg.go.dev/github.com/tychoish/fun/adt) (strongly typed
atomic data structures, wrappers, tools, and operations.)
- [itertool](https://pkg.go.dev/github.com/tychoish/fun/itertool)
(iterator tools.)
- [pubsub](https://pkg.go.dev/github.com/tychoish/fun/pubsub) (message
broker and concurrency-safe queue and deque.)
- [srv](https://pkg.go.dev/github.com/tychoish/fun/srv) (service
orchestration and management framework.)
- [assert](https://pkg.go.dev/github.com/tychoish/fun/assert)
(minimal generic-based assertion library, in the tradition of
testify.) The assertions in `assert` abort the flow of the test while
[check](https://pkg.go.dev/github.com/tychoish/fun/assert/check),
provide non-critical assertions.
- [testt](https://pkg.go.dev/github.com/tychoish/fun/testt) (testy)
are a collection of "nice to have" test helpers and utilities.
- [ensure](https://pkg.go.dev/github.com/tychoish/fun/ensure) An
experimental test harness and orchestration tool.
For more information, see the documentation, but of general interest:
- The root `fun` package contains a few generic function types and
with a collection of methods for interacting and managing and
manipulating these operations. The `fun.Iterator` provides a
framework for interacting with sequences, including some powerful
high-level parallel processing tools.
- In `itertools` and with `fun.Iterator`, an iterator framework and
tools for interacting with iterators and generators.
- In `srv`, a service orchestration toolkit and lifecycle tools.
- In `ft` a number of low-level function-manipulation tools.
- In `pubsub`, a channel-based message broker (for one-to-many channel
patterns), with several backend patterns for dealing with
load-shedding and message distribution patterns.
- Queue and Deque implementations (in `pubsub`) that provide
thread-safe linked-list based implementations and `Wait` methods to
block until new items added.
- In `dt` a collection of data types and tools for manipulating
different container types, as well as implementations of linked
lists and sets. `dt` also provides an `fun`-idiomatic wrappers around
generic slices and maps, which complement the tools in the `fun`
package.
- In `adt`, a collection of Atomic/Pool/Map operations that use
generics to provide strongly typed interfaces for common operations.
- In `erc`, an error collector implementation for threadsafe error
aggregation and introspection, particularly in worker-pool,
applications. `ers` provides related functionality.
- `fun` includes a number of light weight testing tools:
- `assert` and `assert/check` provide "testify-style" assertions
with more simple output, leveraging generics.
- `testt` context, logging, and timer helpers for use in tests.
- `ensure` and `ensure/is` a somewhat experimental "chain"-centered
API for assertions.
Contributions welcome, the general goals of the project:
- superior API ergonomics.
- great high-level abstractions.
- obvious and clear implementations.
- minimal dependencies.
Have fun!
近期下载者:
相关文件:
收藏者: