A lightning-fast, transactional, file-based FIFO queue for Android and Java applications.
Tape is a collection of queue-related classes for Android and Java, centered around `QueueFile`—a lightning-fast, transactional, file-based FIFO (First-In-First-Out) data structure. It solves the problem of reliable, ordered data storage with atomic operations and crash resilience, ensuring data integrity even during system failures.
Android and Java developers building applications that require persistent, ordered data storage, such as logging systems, task queues, or message buffers where reliability and performance are critical.
Developers choose Tape for its combination of speed, transactional safety, and crash resilience in a simple API. Unlike in-memory queues, it provides file-based persistence, and unlike generic databases, it offers optimized FIFO operations with atomic guarantees.
A lightning fast, transactional, file-based FIFO for Android and Java.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
The README emphasizes that QueueFile survives process and system crashes with atomic operations, ensuring data integrity even during I/O exceptions.
Addition and removal are O(1) operations, providing lightning-fast performance for FIFO data structures, as highlighted in the description.
ObjectQueue works with arbitrary Java objects via custom converters like Moshi, allowing easy integration with existing serialization libraries, as shown in the Converter example.
The iterator API supports reading and removing multiple elements in one go, enabling optimized batch operations for tasks like logging or task processing.
The README admits it's built for file systems with atomic segment writes; on conventional systems, power loss can cause corruption, making it risky for unreliable hardware.
Requires implementing custom converters for object serialization, adding development complexity compared to out-of-the-box solutions with built-in encoding.
No explicit mention of thread-safe operations; developers likely need to handle synchronization externally, which can be error-prone for multi-threaded apps.