Skip to content
/ exp Public

Experimental packages not in std and golang.org/exp

License

Notifications You must be signed in to change notification settings

smallnest/exp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

author
chaoyuepan
Dec 26, 2024
a31cf4e · Dec 26, 2024
Mar 5, 2024
Dec 28, 2023
Jul 8, 2024
Dec 26, 2024
Sep 30, 2024
Oct 14, 2024
Mar 12, 2024
Feb 1, 2024
Dec 13, 2024
Dec 13, 2024
Sep 27, 2024
Dec 15, 2024
Dec 26, 2024
Jun 12, 2023
Jun 12, 2023
Dec 26, 2024
Dec 26, 2024
Dec 26, 2024

Repository files navigation

exp

GitHub GitHub Action Go Report Card GoDoc

Experimental packages not in std and golang.org/exp

packages

  • sync

    • generic sync.Map: modify sync.Map to support generic
    • Phaser: a reusable synchronization barrier, similar in functionality to java.util.concurrent.Phaser
    • Notifier: implement the observer pattern via channel
    • Shard: a sharding data structure with lock-free read and write
    • Exchanger: a synchronization point at which goroutines can pair and swap elements within pairs. Each goroutine presents some object on entry to the exchange method, matches with a partner goroutine, and receives its partner's object on return. An Exchanger may be viewed as a bidirectional form of a channel.
    • atomicx: add C++ 20 atomic wait/notify feature for go std atomic
      • Pointer[T]
      • Value
      • Uintptr
      • Bool
      • Int32
      • Int64
      • Uint32
      • Uint64
    • Pool: a generic pool, forked from https://github.com/mkmik/syncpool
    • Broadcaster: a broadcaster to broadcast message to multiple receivers
  • container

    • heap: generic heap
    • binheap: human friendly generic heap
    • list: generic list
    • ring: generic ring
    • skiplist: generic skiplist based on mauricegit/skiplist
    • set: discussion at golang/go#47331
      • Set: generic set
      • SortedSet: generic sorted set
    • maps:
      • OrderedMap: an insert-order map. The main code is forked wk8/go-ordered-map
      • AccessOrderedMap: an access-order map.
      • BidiMap: a bidirectional map.
    • Tuple: a collection of generic tuples.
    • bits: a bitset implementation
  • chanx

    • Batch: batch get from channels efficiently
  • io

    • MmapReader: a mmap reader which implements io.Reader, io.ReadAt, io.Closer and can ReadLine
  • db a group of sql helper functions.

  • stat

    • Hist provides a Histogram.
  • ebpf

    • AttachUretprobe: a helper function to add Uretprobe in Go programs to avoid crash
  • internal data structure in go std libs

    • PoolDequeue: a lock-free, fixed-size single-producer, multi-consumer queue
    • PoolChain: a lock-free, dynamically-sized single-producer, multi-consumer queue
  • mock

    • sqlmock: a simple sql mock
    • kafkamock: kafka mock