Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/ErikMcClure/buntils

C/C++ Utility Library
https://github.com/ErikMcClure/buntils

Last synced: 3 months ago
JSON representation

C/C++ Utility Library

Awesome Lists containing this project

README

        

# Bunny Utility Library

This is a collection of miscellaneous utility code used to simplify common tasks in C/C++ programs.

* Type safe variant object for algebriac types.
* Allocators with a state
* Logging
* Reference counting
* Generalized linked list manipulation
* Array-based linked list
* Threaded red-black tree implementation
* AVL tree implementation
* DLL-friendly simplified dynamic array implementation
* Array-based stack implementation
* Array-based queue implementation
* cStr, an extension of the standard std::string object that supports UTF8 conversions and other operations.
* A single-producer, single-consumer lockless queue
* A multi-producer, multi-consumer microlock queue
* Templatized implementations of cmpxchg,xchg,xadd, and other lockless primitives.
* A template-based hash implementation based on khash
* Command line parsing
* Block, ring, and greedy allocation schemes
* Fixed-size bit-based flag manipulation
* High precision timer
* Binary heap implementation
* Priority queue based on binary heap
* Priority heap based on Priority Queue that tracks entries to allow implementing Dijkstra's Algorithm
* #defines to help deal with stupid windows.h conflicts and VC++ deprecated functions
* Sorted array using a bisection algorithm
* Map based on sorted array
* Frighteningly efficient delegate implementation
* Automatic differentiation with dual numbers
* Fixed-point arithmetic.
* Template-based SSE2 objects for automatic SSE optimizations.
* Alias table for random number generation
* Generic animation system
* Circular array implementation
* Disjoint Set Data Structure that implements Kruskal's minimum spanning tree algorithm.
* Cross-platform extension to std::thread that allows signaling threads.
* Stream splitting object using standard buffer implementation.
* Integral rational data structure for precise fractions.
* String table for localization.
* High performance profiler with multiple output options.
* Multi-consumer multi-producer lockless block allocator.
* Generalized KD-tree implementation for querying how many rectangles are inside a given rectangle.
* Implementation of Robert Bridson's Fast Poisson Disk Sampling algorithm.
* An in-place compressed Trie data structure implementation.
* Arbitrary scheduler class for delaying actions.
* Thread pool implementation
* Implementation of a graph representation that implements the push-relabel algorithm, along with reductions from circulation and lower-bound circulation graph problems.
* Implements efficient breadth-first traversal of a tree or graph
* Includes an ID hash system that can be rebased at any time, including a reversal extension.
* Implements mathematically correct integer and float modulo
* Includes an n-dimensional vector and matrix math library, with optimized 4x4, 3x3 and 2x2 operations.
* Implementes the xorshift random number generation algorithm as a standards-compliant engine.
* AA tree implementation
* Universal object serializer
* XML parser and serializer
* JSON parser and serializer
* UBJSON parser and serializer
* INI parser and serializer