• Stars
    star
    181
  • Rank 212,110 (Top 5 %)
  • Language
    Go
  • License
    MIT License
  • Created almost 5 years ago
  • Updated 9 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Synchronization and asynchronous computation package for Go

Async is a synchronization and asynchronous computation package for Go.

Overview

  • Future - A placeholder object for a value that may not yet exist.
  • Promise - While futures are defined as a type of read-only placeholder object created for a result which doesn’t yet exist, a promise can be thought of as a writable, single-assignment container, which completes a future.
  • Task - A data type for controlling possibly lazy and asynchronous computations.
  • WaitGroupContext - A WaitGroup with the context.Context support for graceful unblocking.
  • Reentrant Lock - Mutex that allows goroutines to enter into the lock on a resource more than once.
  • Optimistic Lock - Mutex that allows optimistic reading. Could be retried or switched to RLock in case of failure. Significantly improves performance in case of frequent reads and short writes. See benchmarks.

Examples

Can be found in the examples directory/tests.

License

Licensed under the MIT License.

More Repositories

1

go-streams

A lightweight stream processing library for Go
Go
1,734
star
2

go-quartz

Minimalist and zero-dependency scheduling library for Go
Go
1,635
star
3

dev-tools

Widely used software developer tools in a single application
Java
282
star
4

wifiqr

Create a QR code with your Wi-Fi login details
Go
250
star
5

equalizer

A set of performant rate limiters for Go
Go
77
star
6

auth-server

Simple authentication and authorization service
Go
69
star
7

tpack

Pack a Go workflow/function as a Unix-style pipeline command
Go
55
star
8

rspark

β–β–‚β–†β–‡β–β–„β–ˆβ– Sparklines for Rust apps
Rust
49
star
9

sketch

An image manipulation library for Kotlin
Kotlin
45
star
10

kotlin-backoff

An exponential backoff library for Kotlin
Kotlin
40
star
11

gemini-cli

A command-line interface (CLI) for Google Gemini
Go
36
star
12

fsweeper

A file management automation tool
Go
30
star
13

scala-statecharts

Scala statecharts collection (FSM, UML)
Scala
12
star
14

dynamic

A Scala library that allows copying a case class using a dynamic property name
Scala
11
star
15

aerospike-client-scala

Idiomatic and reactive Scala client for Aerospike database
Scala
10
star
16

memento

Kafka messages non-blocking reprocessor and delayed producer service
Scala
9
star
17

kafka-aerospike-state-store

Kafka Streams custom persistent StateStore backed by Aerospike
Java
9
star
18

gravity

An efficient Java substring search library
Java
8
star
19

scalikejackson

Lightweight Scala JSON library
Scala
7
star
20

github-action-aerospike

GitHub Action to set up an Aerospike database
Shell
6
star
21

aerospike-client-kotlin

Aerospike Client for Kotlin
Kotlin
4
star
22

aerospike-cli

A command line utility to query the Aerospike database using SQL
Kotlin
4
star
23

micrometer-registry-aerospike

A Micrometer MeterRegistry for Aerospike
Java
3
star
24

github-action-pulsar

GitHub Action to set up Apache Pulsar
Shell
3
star
25

pyloc

Python implementation of tool for counting lines of code
Python
2
star
26

pkgslog

A package level structured log/slog handler for Go
Go
2
star
27

cloud-storage-benchmark

A CLI tool to evaluate performance of various cloud storage providers
Go
1
star