hq

🐁 happy little queue

https://github.com/nikolaydubina/hq

Science Score: 44.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (3.7%) to scientific vocabulary

Keywords

go haiku queue redis
Last synced: 4 months ago · JSON representation ·

Repository

🐁 happy little queue

Basic Info
  • Host: GitHub
  • Owner: nikolaydubina
  • License: mit
  • Language: Go
  • Default Branch: main
  • Homepage:
  • Size: 67.4 KB
Statistics
  • Stars: 16
  • Watchers: 2
  • Forks: 0
  • Open Issues: 0
  • Releases: 3
Topics
go haiku queue redis
Created almost 4 years ago · Last pushed over 1 year ago
Metadata Files
Readme License Citation Codeowners Security

README.md

happy little queue

97% covered, 90LOC, 80_000RPS, integration test, auto-cleaning, lightweight

Go Reference Go Report Card OpenSSF Scorecard

When your Go code does not panic
When your infra does not fail
When your data is small
When your data is temporary
When all you need is a happy little queue

```go // once you have a redis connection rdb := redis.NewClient(...) // "github.com/go-redis/redis/v8"

...

// you can boot a lightweight worker worker := hq.ReceiveWorker{ Redis: rdb, Queue: "my-queue", PoolIdle: time.Minute, // recommended! PoolActive: time.Millisecond * 50, // recommended! NumWorkers: 10, // recommended! Batch: 100, // recommended! Handler: &handler, // interface { Handle(message []byte) error } } go worker.Work()

...

// and send something sender := hq.Sender{ Redis: rdb, Queue: "my-queue", MaxLen: 10, TTL: time.Hour * 4, } sender.Send([]byte("my-bytes"))

// in redis it is single list // LLEN my-queue ```

It is as fast as Redis, so should be around 80_000RPS.

P.S. "happy" because optimistic

Owner

  • Name: Nikolay Dubina
  • Login: nikolaydubina
  • Kind: user

Citation (CITATION.cff)

cff-version: 1.2.0
message: If you reference this library in publication, please cite it as below.
title: Lightweight Optimistic Queue through Redis in Go
abstract: Lightweight optimistic queue through Redis in Go
authors:
- family-names: Dubina
  given-names: Nikolay
version: 2.1
date-released: 2022-06-21
license: MIT
repository-code: https://github.com/nikolaydubina/hq
url: https://github.com/nikolaydubina/hq

GitHub Events

Total
Last Year

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Packages

  • Total packages: 1
  • Total downloads: unknown
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 3
proxy.golang.org: github.com/nikolaydubina/hq
  • Versions: 3
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 5 months ago

Dependencies

go.mod go
  • github.com/cespare/xxhash/v2 v2.1.2
  • github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
  • github.com/go-redis/redis/v8 v8.11.5
go.sum go
  • github.com/cespare/xxhash/v2 v2.1.2
  • github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f
  • github.com/go-redis/redis/v8 v8.11.5
.github/workflows/scorecard.yml actions
  • actions/checkout 93ea575cb5d8a053eaa0ac8fa3b40d7e05a33cc8 composite
  • actions/upload-artifact 3cea5372237819ed00197afe530f5a7ea3e805c8 composite
  • github/codeql-action/upload-sarif 17573ee1cc1b9d061760f3a006fc4aac4f944fd5 composite
  • ossf/scorecard-action v2.3.1 composite