portable_get_random
hashmap
portable_get_random | hashmap | |
---|---|---|
1 | 8 | |
0 | 1,719 | |
- | - | |
10.0 | 2.9 | |
over 2 years ago | 9 months ago | |
C | Go | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
portable_get_random
-
Go 1.20 Released
To get cryptographically grade randomness you can use one of these C functions:
BSD, newer macOS, and GNU libc: int getentropy(void buffer, size_t length);
Linux 3.19+: ssize_t getrandom(void buf, size_t buflen, unsigned int flags);
iOS and macOS 10.7+: int SecRandomCopyBytes(SecRandomRef, size_t, uint8_t );
Fuchsia: void zx_cprng_draw(void* buffer, size_t buffer_size);
Any *nix: Read from "/dev/random" (or "/dev/urandom" under the assumption that your system has already enough entropy).
Windows: There are different functions/libraries depending on the Windows version and some of them are a complicated multi-step mess.
Some time ago I wrote a C library that abstracts that away just for fun: https://github.com/panzi/portable_get_random
hashmap
-
SwissMap: A smaller, faster Golang Hash Table
I generally just use this one: https://github.com/cornelk/hashmap
Mostly in that it also gives me lock free performance, which cleans up a lot of defers.
-
Go 1.20 Released
Glad to see this make it into the core.
I've been using this library for ages now...
https://github.com/cornelk/hashmap
Always entertains me to see developers write all the lock/unlock code when they could just use that.
- Ask HN: Was it worth it for Go to add generics
- Gojq: Pure Go Implementation of Jq
-
HaxMap, a concurrent hashmap faster and more memory-efficient than golang's sync.Map
Pre-allocating would not fix https://github.com/cornelk/hashmap/issues/47 as the bug is in the linked list. This is not grow related but an issue with concurrent Add/Delete on the list.
-
A Go implementation of the concurrency control algorithm in paper <Left-Right -A Concurrency Control Technique with Wait-Free Population Oblivious Reads>
Would be interesting to compare with https://github.com/cornelk/hashmap
-
how does lock-free (or lockless) hashmap works?
I ran across this library recently - https://github.com/cornelk/hashmap
What are some alternatives?
prometheus - The Prometheus monitoring system and time series database.
haxmap - Fastest and most memory efficient golang concurrent hashmap
go-left-right - A faster RWLock primitive in Go, 2-3 times faster than RWMutex. A Go implementation of concurrency control algorithm in paper <Left-Right - A Concurrency Control Technique with Wait-Free Population Oblivious Reads>
sonic - A blazingly fast JSON serializing & deserializing library
jqr
go - The Go programming language
xxHash - Pure Go implementation of xxHash (32 and 64 bits versions)
pq - Like jq, but with Python
immutable-js - Immutable persistent data collections for Javascript which increase efficiency and simplicity.
query-json - Faster, simpler and more portable implementation of `jq` in Reason
xxhash - A Go implementation of the 64-bit xxHash algorithm (XXH64)
go-evmap - A Go implementation of Rust's evmap which optimizes for high-read, low-write workloads and uses eventual consistency to ensure that readers and writers never block each other.