libfptu - Machine-handy format for linear representation of small data structures for (de)serialization, messaging and placement in shared memory

  •        4

Fast Positive Tuples, aka "Позитивные Кортежи" by Positive Technologies. Машинно-эффективный формат линейного представления небольших структур данных для (де)сериализации, обмена сообщениями и размещения в разделяемой памяти. "Позитивные Кортежи" спроектированы в соответствии с минималистическим тезисом "Лучше меньше, да лучше".

https://www.ptsecurity.com
https://github.com/leo-yuriev/libfptu

Tags
Implementation
License
Platform

   




Related Projects

FastTuple - Generates heterogeneous collections of primitive values and ensures as best it can that they will be laid out adjacently in memory

  •    Java

FastTuple is a library for generating heterogeneous tuples of primitive types from a runtime defined schema without boxing.

Knet.jl - Koç University deep learning framework.

  •    Julia

Knet uses dynamic computational graphs generated at runtime for automatic differentiation of (almost) any Julia code. This allows machine learning models to be implemented by defining just the forward calculation (i.e. the computation from parameters and data to loss) using the full power and expressivity of Julia. The implementation can use helper functions, loops, conditionals, recursion, closures, tuples and dictionaries, array indexing, concatenation and other high level language features, some of which are often missing in the restricted modeling languages of static computational graph systems like Theano, Torch, Caffe and Tensorflow. GPU operation is supported by simply using the KnetArray type instead of regular Array for parameters and data. Knet builds a dynamic computational graph by recording primitive operations during forward calculation. Only pointers to inputs and outputs are recorded for efficiency. Therefore array overwriting is not supported during forward and backward passes. This encourages a clean functional programming style. High performance is achieved using custom memory management and efficient GPU kernels. See Under the hood for more details.

typed - Improvements to PHP's type system in userland: generics, typed lists, tuples and structs

  •    PHP

This package is a mere proof of concept about what's possible in PHP's userland to improve type checking. It adds support for type inference, generics, union types, typed lists, tuples and structs. Because all is done in userland, there are limitations on what syntax is possible. The following examples all show the manual type configuration. There are some cases where type inference falls short, and you have to fall back on manually defining them. You might also prefer the manual approach, for clarity's sake.

ron - Rusty Object Notation

  •    Rust

RON is a simple readable data serialization format that looks similar to Rust syntax. It's designed to support all of Serde's data model, so structs, enums, tuples, arrays, generic maps, and primitive values. The new format uses (..) brackets for heterogeneous structures (classes), while preserving the {..} for maps, and [..] for homogeneous structures (arrays). This distinction allows us to solve the biggest problem with JSON.

fast-serialization - FST: fast java serialization drop in-replacement

  •    Java

A fast java serialization drop in-replacement and some serialization based utils such as Structs and OffHeap Memory.


Shared Memory Arena

  •    C

a shared memory allocator that provides a simple interface for named shared memory segments; shared memory between any processes; provides shared memory queues; does not use the same address between processes; fast structured arena file scales well

javatuples - Typesafe representation of tuples in Java.

  •    Java

javatuples is one of the simplest java libraries ever made. Its aim is to provide a set of java classes that allow you to work with tuples.

wal2json - JSON output plugin for changeset extraction

  •    C

wal2json is an output plugin for logical decoding. It means that the plugin have access to tuples produced by INSERT and UPDATE. Also, UPDATE/DELETE old row versions can be accessed depending on the configured replica identity. Changes can be consumed using the streaming protocol (logical replication slots) or by a special SQL API. The wal2json output plugin produces a JSON object per transaction. All of the new/old tuples are available in the JSON object. Also, there are options to include properties such as transaction timestamp, schema-qualified, data types, and transaction ids.

FASTER - Fast key-value store from Microsoft Research

  •    CSharp

Managing large application state easily and with high performance is one of the hardest problems in the cloud today. We present FASTER, a new concurrent key-value store designed for point lookups and heavy updates. FASTER supports data larger than memory, by leveraging fast external storage. What differentiates FASTER are its cache-optimized index that achieves very high performance — up to 160 million operations per second when data fits in memory; its unique “hybrid record log” design that combines a traditional persistent log with in-place updates, to shape the memory working set and retain performance; and its architecture as an component that can be embedded in cloud apps. FASTER achieves higher throughput than current systems, by more than two orders of magnitude, and scales better than current pure in-memory data structures, for in-memory working sets. FASTER also offers a new consistent recovery scheme that achieves better performance at the expense of slightly higher commit latency. Go to our website for more details and papers.

bigcache - Efficient cache for gigabytes of data written in Go.

  •    Go

Fast, concurrent, evicting in-memory cache written to keep big number of entries without impact on performance. BigCache keeps entries on heap but omits GC for them. To achieve that operations on bytes arrays take place, therefore entries (de)serialization in front of the cache will be needed in most use cases.

SwiftTips - A collection of Swift tips & tricks that I've shared on Twitter

  •    

You can read more about feature flags in "Feature flags in Swift". 💾 Here I'm using tuples to create a lightweight hierarchy for my data, giving me a nice structure without having to introduce any additional types.

Sasa

  •    CSharp

Sasa is a collection of organized extensions to the .NET framework.

fast_jsonapi - A lightning fast JSON:API serializer for Ruby Objects.

  •    Ruby

A lightning fast JSON:API serializer for Ruby Objects. We compare serialization times with Active Model Serializer as part of RSpec performance tests included on this library. We want to ensure that with every change on this library, serialization time is at least 25 times faster than Active Model Serializers on up to current benchmark of 1000 records. Please read the performance document for any questions related to methodology.

GSL - GNU Scientific Library

  •    C

The GNU Scientific Library (GSL) is a numerical library for C and C++ programmers. The library provides a wide range of mathematical routines such as random number generators, special functions and least-squares fitting. There are over 1000 functions in total with an extensive test suite.

snappydata - SnappyData - The Spark Database. Stream, Transact, Analyze, Predict in one cluster

  •    Scala

Apache Spark is a general purpose parallel computational engine for analytics at scale. At its core, it has a batch design center and is capable of working with disparate data sources. While this provides rich unified access to data, this can also be quite inefficient and expensive. Analytic processing requires massive data sets to be repeatedly copied and data to be reformatted to suit Spark. In many cases, it ultimately fails to deliver the promise of interactive analytic performance. For instance, each time an aggregation is run on a large Cassandra table, it necessitates streaming the entire table into Spark to do the aggregation. Caching within Spark is immutable and results in stale insight. At SnappyData, we take a very different approach. SnappyData fuses a low latency, highly available in-memory transactional database (GemFireXD) into Spark with shared memory management and optimizations. Data in the highly available in-memory store is laid out using the same columnar format as Spark (Tungsten). All query engine operators are significantly more optimized through better vectorization and code generation. The net effect is, an order of magnitude performance improvement when compared to native Spark caching, and more than two orders of magnitude better Spark performance when working with external data sources.

MessagePack-CSharp - Extremely Fast MessagePack Serializer for C#(

  •    CSharp

Extremely fast MessagePack serializer for C#, x10 faster than MsgPack-Cli and acquires best performance compared with all the other C# serializers. MessagePack for C# has built-in LZ4 compression which can achieve super fast and small binary size. Performance is always important! for Game, Distributed computing, Microservices, Store data to Redis, etc.MessagePack has compact binary size and full set of general purpose expression. Please see the comparison with JSON, protobuf, ZeroFormatter section. If you want to know why MessagePack C# is fastest, please see performance section.

Noggit - JSON streaming parser

  •    Java

Noggit is the world's fastest streaming JSON parser for Java. It is used in Apache Solr.

scalloc - A Fast, Multicore-Scalable, Low-Fragmentation Memory Allocator

  •    C++

scalloc provides general-purpose memory allocation involving many threads on many cores can be done with high performance, multicore scalability, and low memory consumption. The main ideas behind the design of scalloc are: uniform treatment of small and big objects through so-called virtual spans, efficiently and effectively reclaiming free memory through fast and scalable global data structures.

libmdbx - Really fast and compact memory-mapped key-value storage engine based on B+Tree

  •    C

MDBX is compact, fast, powerful, and robust and implements a simplified variant of the BerkeleyDB API. In fact libmdbx is revised and extended descendant of Lightning Memory-Mapped Database (aka LMDB). Permissive non-copyleft BSD-style OpenLDAP Public License 2.8. Русскоязычная версия этого README здесь. libmdbx is superior to LMDB in terms of features and reliability, not inferior in performance. In comparison to LMDB, libmdbx makes many things just work perfectly, not silently and catastrophically break down. libmdbx supports Linux, Windows, MacOS, FreeBSD and other systems compliant with POSIX.1-2008.

speedscope - 🔬 A fast, interactive web-based viewer for performance profiles.

  •    TypeScript

A fast, interactive web-based viewer for performance profiles. An alternative viewer for FlameGraphs. Will happily display multi-megabyte profiles without crashing your browser. Given raw profiling data, speedscope allows you to interactively explore the data to get insight into what's slow in your application, or allocating all the memory, or whatever data is represented in the profiling data.