SuperString is an efficient string library for C++, that achieves a remarkable memory and CPU optimization. SuperString uses Rope (data structure) and optimization techniques.
https://www.boutglay.com/SuperStringTags | string c-plus-plus optimization rope-string garbage-collection fast memory |
Implementation | C++ |
License | MIT |
Platform |
Header-only C++17 library provides static reflection for enums, work with any enum type without any macro or boilerplate code.
cplusplus cplusplus-17 c-plus-plus c-plus-plus-17 cpp cpp17 enum-to-string string-to-enum serialization reflection metaprogramming header-only single-file no-dependenciesHeader-only C++17 library provides nameof macros and functions to simply obtain the name of a variable, type, function, macro, and enum. Nameof returns std::string_view. If argument does not have name, returns empty string.
cplusplus cplusplus-17 c-plus-plus c-plus-plus-17 cpp cpp17 nameof nameof-operator enum-to-string serialization reflection metaprogramming header-only single-file no-dependencies{fmt} is an open-source formatting library for C++. It can be used as a safe and fast alternative to (s)printf and IOStreams. This is a development branch that implements the C++ standards proposal P0645 Text Formatting. Released versions are available from the Releases page. Format string syntax similar to the one of str.format in Python.
c-plus-plus formatting printfAkumuli is a time-series database for modern hardware. It can be used to capture, store and process time-series data in real-time. The word "akumuli" can be translated from Esperanto as "accumulate".
time-series database c-plus-plus tsdb time-series-database metrics column-oriented columnar-databaseThis project aims to be the best, clearest QR Code generator library in multiple languages. The primary goals are flexible options and absolute correctness. Secondary goals are compact implementation size and good documentation comments.
qr-code qr-generator c-plus-plus qr library qr-code-generatorCross platform indexed file btree implementation in C#, java and Python: Commit/abort transactions, localized unicode string order, recovery of damaged files, and configurable memory footprint, hashing, prefixing, and object serialization.
Note: Some of the code here is old and was written when I was learning C++. It might be possible that code is not safe or making wrong assumptions. Please use with caution. Pull requests are always welcome. Include contains single header implementation of data structures and some algorithms.
algorithm cpp interview-questions interview-practice data-structures datastructures c-plus-plus bit-manipulation tree leetcode-solutions leetcode string-manipulationMudlet is a quality MUD client, designed to take mudding to a new level. It’s a new breed of a client on the MUD scene – with an intuitive user interface, a specially designed scripting framework, and a very fast text display. That, along with cross-platform capability and an open-source development model result in a very likable MUD client.
mudlet cross-platform c-plus-plus mud game text-based text-adventure lua-script qt5 qt multi-user-dungeon c-plus-plus-14 modern-cppTrie implementation based on the "HAT-trie: A Cache-conscious Trie-based Data Structure for Strings." (Askitis Nikolas and Sinha Ranjan, 2007) paper. For now, only the pure HAT-trie has been implemented, the hybrid version may arrive later. Details regarding the HAT-trie data structure can be found here. The library provides an efficient and compact way to store a set or a map of strings by compressing the common prefixes. It also allows to search for keys that match a prefix. Note though that the default parameters of the structure are geared toward optimizing exact searches, if you do a lot of prefix searches you may want to reduce the burst threshold through the burst_threshold method.
cpp trie hat-trie data-structures header-only c-plus-plusg2o is an open-source C++ framework for optimizing graph-based nonlinear error functions. g2o has been designed to be easily extensible to a wide range of problems and a new problem typically can be specified in a few lines of code. The current implementation provides solutions to several variants of SLAM and BA. A wide range of problems in robotics as well as in computer-vision involve the minimization of a non-linear error function that can be represented as a graph. Typical instances are simultaneous localization and mapping (SLAM) or bundle adjustment (BA). The overall goal in these problems is to find the configuration of parameters or state variables that maximally explain a set of measurements affected by Gaussian noise. g2o is an open-source C++ framework for such nonlinear least squares problems. g2o has been designed to be easily extensible to a wide range of problems and a new problem typically can be specified in a few lines of code. The current implementation provides solutions to several variants of SLAM and BA. g2o offers a performance comparable to implementations of state-of-the-art approaches for the specific problems (02/2011).
g2o slam c-plus-plus graph-optimizationThe C++ STL allocator model has various flaws. For example, they are fixed to a certain type, because they are almost necessarily required to be templates. So you can't easily share a single allocator for multiple types. In addition, you can only get a copy from the containers and not the original allocator object. At least with C++11 they are allowed to be stateful and so can be made object not instance based. But still, the model has many flaws. Over the course of the years many solutions have been proposed. for example EASTL. This library is another. But instead of trying to change the STL, it works with the current implementation. See example/ for more.
allocator c-plus-plus memory-allocation memoryEssentia is an open-source C++ library for audio analysis and audio-based music information retrieval released under the Affero GPL license. It contains an extensive collection of reusable algorithms which implement audio input/output functionality, standard digital signal processing blocks, statistical characterization of data, and a large set of spectral, temporal, tonal and high-level music descriptors. The library is also wrapped in Python and includes a number of predefined executable extractors for the available music descriptors, which facilitates its use for fast prototyping and allows setting up research experiments very rapidly. Furthermore, it includes a Vamp plugin to be used with Sonic Visualiser for visualization purposes. Essentia is designed with a focus on the robustness of the provided music descriptors and is optimized in terms of the computational cost of the algorithms. The provided functionality, specifically the music descriptors included in-the-box and signal processing algorithms, is easily expandable and allows for both research experiments and development of large-scale industrial applications. If you use example extractors (located in src/examples), or your own code employing Essentia algorithms to compute descriptors, you should be aware of possible incompatibilities when using different versions of Essentia.
audio music dsp essentia c-plus-plus music-information-retrieval audio-analysis sound-processingcmake-init is a sophisticated copy & paste template for modern C and C++ projects. The main goals include support of all use cases around software development (programming, testing, Q&A, deployment, documentation) while being modular, flexible, and idomatic. cmake-init is therefore a collection of cmake best-practices. The file ADAPT.md contains a task checklist for new projects. More generally, a new project should contain all core modules and, as needed, add the maintainer and development modules as required. cmake-init does not impose modularity rules for the cmake targets.
c-plus-plus cmake template c-plus-plus-11Recent generations of CPUs, and GPUs in particular, require data-parallel codes for full efficiency. Data parallelism requires that the same sequence of operations is applied to different input data. CPUs and GPUs can thus reduce the necessary hardware for instruction decoding and scheduling in favor of more arithmetic and logic units, which execute the same instructions synchronously. On CPU architectures this is implemented via SIMD registers and instructions. A single SIMD register can store N values and a single SIMD instruction can execute N operations on those values. On GPU architectures N threads run in perfect sync, fed by a single instruction decoder/scheduler. Each thread has local memory and a given index to calculate the offsets in memory for loads and stores. Current C++ compilers can do automatic transformation of scalar codes to SIMD instructions (auto-vectorization). However, the compiler must reconstruct an intrinsic property of the algorithm that was lost when the developer wrote a purely scalar implementation in C++. Consequently, C++ compilers cannot vectorize any given code to its most efficient data-parallel variant. Especially larger data-parallel loops, spanning over multiple functions or even translation units, will often not be transformed into efficient SIMD code.
vectorization parallel simd-vector simd-instructions simd avx c-plus-plus avx512 sse neon cpp portable cpp11 cpp14 cpp17 avx2 simd-programming data-parallel parallel-computingAnnoy (Approximate Nearest Neighbors Oh Yeah) is a C++ library with Python bindings to search for points in space that are close to a given query point. It also creates large read-only file-based data structures that are mmapped into memory so that many processes may share the same data.To install, simply do sudo pip install annoy to pull down the latest version from PyPI.
c-plus-plus nearest-neighbor-search locality-sensitive-hashing approximate-nearest-neighbor-searchWe present GeoPhysical Calculation Plus Plus (GPCPP). It is capable of performing multi-modal geophysical simulation and analyses. We developed GPCPP by using the GUI builder glui, an n-length fast Fourier transform method and gnuplot.
EASTL stands for Electronic Arts Standard Template Library. It is a C++ template library of containers, algorithms, and iterators useful for runtime and tool development across multiple platforms. It is a fairly extensive and robust implementation of such a library and has an emphasis on high performance above all other considerations. If you are familiar with the C++ STL or have worked with other templated container/algorithm libraries, you probably don't need to read this. If you have no familiarity with C++ templates at all, then you probably will need more than this document to get you up to speed. In this case, you need to understand that templates, when used properly, are powerful vehicles for the ease of creation of optimized C++ code. A description of C++ templates is outside the scope of this documentation, but there is plenty of such documentation on the Internet.
eastl stl games c-plus-plus c-plus-plus-11 c-plus-plus-14 c-plus-plus-17 modern-cppultramemcache is an ultra fast Memcache client written in highly optimized C++ with Python bindings. By design, ultramemcache limits the size of Memcache items to 1000*1000 bytes, but you can change this limitation by using the max_item_size argument when creating a Client class.
c-plus-plus memcachedSFML is a simple, fast, cross-platform and object-oriented multimedia API. It provides access to windowing, graphics, audio and network. It is written in C++, and has bindings for various languages such as C, .Net, Ruby, Python. You can get the latest official release on SFML's website. You can also get the current development version from the Git repository.
sfml c-plus-plus multimedia games opengl sdk graphics audio cross-platformStringScore is an Objective-C library which provides super fast fuzzy string matching/scoring. Based on the JavaScript library of the same name, by Joshaven Potter. All three methods return a CGFloat representing how closely the string matched the otherString parameter.
We have large collection of open source products. Follow the tags from
Tag Cloud >>
Open source products are scattered around the web. Please provide information
about the open source projects you own / you use.
Add Projects.