null
bitmap
Our great sponsors
null | bitmap | |
---|---|---|
5 | 1 | |
1,723 | 268 | |
- | - | |
5.6 | 4.3 | |
about 1 month ago | 4 months ago | |
Go | Assembly | |
BSD 2-clause "Simplified" License | MIT License |
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.
null
-
JSON encoder/decoder supporting omitempty on structs
Use-case: working on PATCH requests, the body may or may not contain nullable values. I am using guregu/null and I can't use a pointer because if the json contains "null" as a value, the pointer will be set to nil in the struct, instead of a value representing the presence of null. In short I can't differentiate the absence of the field in the request from the presence of the field with a null value.
-
Nilable - finally a way to stop using pointers just to get the nil state
https://github.com/guregu/null is an awesome package implementing most SQL scanner Interfaces plus JSON
- Golang backend with lots of raw SQL queries
-
Gonion - Golang Client for querying Tor network data
Unfortunately in Go, switching to *bool makes the api a little more awkward to use since users that need to set true or false have to define a local variable then use a pointer to that. Another option would be something like null, but that adds a dependency to your currently-dependency-free project. If anyone has a better solution to this pattern, I'd love to hear it.
bitmap
-
Example of Entity Component System in Go
Good question, I think there's many different lessons. To your point about bitmasks, you can imagine that each component (i.e. column) has an array of data and a large bitmap that identifies whether a component is present or not. Had to build a SIMD implementation so you can do and, and not, or and xor operations on millions of components within reasonable amount of time. Interestingly enough, you still need a hashmap or b+tree in case you want to retrieve a component by it's ID instead of an index, but the rest of things can be modeled with bitmap indexes.
What are some alternatives?
fsm - Finite State Machine for Go
go-adaptive-radix-tree - Adaptive Radix Trees implemented in Go
bitset - Go package implementing bitsets
null - Nullable Go types that can be marshalled/unmarshalled to/from JSON.
trie - Data structure and relevant algorithms for extremely fast prefix/fuzzy string searching.
hyperloglog - HyperLogLog with lots of sugar (Sparse, LogLog-Beta bias correction and TailCut space reduction) brought to you by Axiom
roaring - Roaring bitmaps in Go (golang), used by InfluxDB, Bleve, DataDog
boomfilters - Probabilistic data structures for processing continuous, unbounded streams.
willf/bloom - Go package implementing Bloom filters, used by Milvus and Beego.
go-geoindex - Go native library for fast point tracking and K-Nearest queries
conjungo - A small flexible merge library in go
set - A simple Set data structure implementation in Go (Golang) using LinkedHashMap.