Tape - A lightning fast, transactional, file-based FIFO for Android and Java.

  •        533

A lightning fast, transactional, file-based FIFO for Android and Java. QueueFile is a lightning-fast, transactional, file-based FIFO. Addition and removal from an instance is an O(1) operation and is atomic. Writes are synchronous; data will be written to disk before an operation returns. The underlying file is structured to survive process and even system crashes and if an I/O exception is thrown during a mutating change, the change is aborted.

http://square.github.io/tape/
https://github.com/square/tape

Tags
Implementation
License
Platform

   




Related Projects

Redisson - Redis based In-Memory Data Grid for Java

  •    Java

Redisson - distributed Java objects and services (Set, Multimap, SortedSet, Map, List, Queue, BlockingQueue, Deque, BlockingDeque, Semaphore, Lock, AtomicLong, Map Reduce, Publish / Subscribe, Bloom filter, Spring Cache, Executor service, Tomcat Session Manager, Scheduler service, JCache API) on top of Redis server. Rich Redis client.

Capsule - The Capsule Hash Trie Collections Library

  •    Java

Capsule aims to become a full-fledged (immutable) collections library for Java 8+ that is solely built around persistent tries. The library is designed for standalone use and for being embedded in domain-specific languages. Capsule still has to undergo some incubation before it can ship as a well-rounded collection library. Nevertheless, the code is stable and performance is solid.

PCollections - A Persistent Java Collections Library

  •    Java

A Persistent Java Collections Library. PCollections serves as a persistent and immutable analogue of the Java Collections Framework. This includes efficient, thread-safe, generic, immutable, and persistent stacks, maps, vectors, sets, and bags, compatible with their Java Collections counterparts.

Eclipse Collections - Best Java Collection Framework

  •    Java

Eclipse Collections is a collections framework for Java. It has JDK-compatible List, Set and Map implementations with a rich API, additional types not found in the JDK like Bags, Multimaps, and set of utility classes that work with any JDK compatible Collections, Arrays, Maps, or Strings. The iteration protocol was inspired by the Smalltalk collection framework. It maximizes the power of Java 8 Lambda expressions and method references with rich APIs directly available on your collections.


JCTools - Java Concurrency Tools for the JVM

  •    Java

Java Concurrency Tools for the JVM. This project aims to offer some concurrent data structures currently missing from the JDK.

Paguro - Immutable Collections and Functional Transformations for the JVM

  •    Java

Immutable Clojure collections and a Transformation abstraction for Java 8+, immutably, type-safely, and with good performance. It provide support for RRB Tree, which is an immutable List (like Clojure's PersistentVector) that also supports random inserts, deletes, and can be split and joined back together in logarithmic time.

bifurcan - impure functional data structures

  •    Java

This library provides high-quality Java implementations of mutable and immutable data structures, each sharing a common API. Rather than using the existing collection interfaces in java.util such as List or Map, it provides its own interfaces (IList, IMap, ISet) that provide functional semantics - each update to a collection returns a reference to a new collection.

Agrona - Library to build high-performance applications in Java and C++

  •    Java

Agrona provides a library of data structures and utility methods that are a common need when building high-performance applications in Java and C++. It supports Buffers, Map, Sets, Cache, Queues and lot more.

Boon - Low Ceremony. High Productivity. A real boon to Java to developers!

  •    Java

The main goal of Boon is to reduce the productivity delta between Java and Python/Groovy/Ruby. The idea is to just create a lower ceremony APIs. Less Java like APIs, and more getting things done quickly APIs. If reading a file takes one line of code in Ruby/Python/Groovy, then it will also in Java. If slice notation is part of those language, then Boon will have it to.

collections - This package contains JavaScript implementations of common data structures with idiomatic interfaces

  •    Javascript

This package contains JavaScript implementations of common data structures with idiomatic iterfaces, including extensions for Array and Object. You can use these Node Packaged Modules with Node.js, Browserify, Mr, or any compatible CommonJS module loader. Using a module loader or bundler when using Collections in web browsers has the advantage of only incorporating the modules you need. However, you can just embed <script src="collections/collections.min.js"> and all of the collections will be introduced as globals. ⚠️ require("collections") is not supported.

DynamicData - Reactive collections based on Rx.Net

  •    CSharp

Dynamic Data is a portable class library which brings the power of Reactive Extensions (Rx) to collections.Rx is extremely powerful but out of the box provides nothing to assist with managing collections. In most applications there is a need to update the collections dynamically. Typically a collection is loaded and after the initial load, asynchronous updates are received. The original collection will need to reflect these changes. In simple scenarios the code is simple. However, typical applications are much more complicated and may apply a filter, transform the original dto and apply a sort. Even with these simple every day operations the complexity of the code is quickly magnified. Dynamic data has been developed to remove the tedious code of dynamically maintaining collections. It has grown to become functionally very rich with at least 60 collection based operations which amongst other things enable filtering, sorting, grouping, joining different sources, transforms, binding, pagination, data virtualisation, expiration, disposal management plus more.

immutable - Immutable collections for Go

  •    Go

This repository contains immutable collection types for Go. It includes List, Map, and SortedMap implementations. Immutable collections can provide efficient, lock free sharing of data by requiring that edits to the collections return new collections. The collection types in this library are meant to mimic Go built-in collections such asslice and map. The primary usage difference between Go collections and immutable collections is that immutable collections always return a new collection on mutation so you will need to save the new reference.

gs-collections - A supplement or replacement for the Java Collections Framework

  •    Java

GS Collections is a collections framework for Java. It has JDK-compatible List, Set and Map implementations with a rich API and set of utility classes that work with any JDK compatible Collections, Arrays, Maps or Strings. The iteration protocol was inspired by the Smalltalk collection framework. It provides replacements for ArrayList, HashSet, and HashMap optimized for performance and memory usage.

Redisson - Redis based In-Memory Data Grid for Java

  •    Java

Redisson - Distributed and Scalable Java data structures (Set, SortedSet, Map, ConcurrentMap, List, Queue, Deque, Lock, AtomicLong, CountDownLatch, Publish / Subscribe, HyperLogLog) on top of Redis server. Advanced redis java client. It supports over 28+ data structures and services, Synchronous / asynchronous / reactive interfaces and lot more.

Apache Commons - Alternative to Java collection

  •    Java

Commons-Collections seek to build upon the JDK classes by providing new interfaces, implementations and utilities. It provides collection class like Identity map, Ordered map, Reference map, Composite collections, Bag interface etc.

Vavr - Object-functional language extension to Java

  •    Java

Vavr is an object-functional language extension to Java 8, which aims to reduce the lines of code and increase code quality. It provides persistent collections, functional abstractions for error handling, concurrent programming, pattern matching and much more.

Koloboke - Java Collections till the last breadcrumb of memory and performance

  •    Java

A family of projects around collections in Java (so far). A carefully designed extension of the Java Collections Framework with primitive specializations and more. Java 6+. Apache 2.0 license.