{"repo":"goptics/sqliteq","free":true,"listed":false,"github":"https://github.com/goptics/sqliteq","clone":"git clone https://github.com/goptics/sqliteq.git","description":"A sqlite based queue written in go","language":"Go","stars":40,"topics":["persistent-storage","queue","sql","sqlite","hacktoberfest"],"license":"MIT","category":"databases-storage","readme_excerpt":"SQLiteQ: A SQLite-Based Persistent Queue for Go SQLiteQ is a persistent queue implementation in Go using SQLite as the storage backend. It provides efficient enqueue and dequeue operations and maintains persistence across application restarts. Features - Efficient enqueue and dequeue operations - Persistence via SQLite storage - Support for acknowledgment-based processing - Simple and clean API following the Queue interface - Built as a persistence adapter for varmq Installation Usage How It Works SQLiteQ uses a SQLite database to store queue items with the following schema: - id : Unique identifier for each item (autoincrement primary key) - data : The serialized item data (stored as a JSON blob) - status : The status of the item (\"pending\", \"processing\", or \"completed\") - ack id : A unique ID for acknowledging processed items - created at : When the item was added to the queue - updated at : When the item was last updated NOTE: By default, when an item is acknowledged, it is removed from the database. However, you can configure the queue to keep acknowledged items by using the WithRemoveOnComplete(false) option when creating the queue. In this case, acknowledged items will be marked as \"completed\" but will remain in the database. Performance Considerations - The queue is optimized for efficient enqueue and dequeue operations that scale well with queue size - Operations leverage SQLite's indexing for logarithmic time complexity rather than true constant-time - SQLite's WAL (","default_branch":null,"files":null,"tree":[],"storefront":"/r/goptics","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/goptics/sqliteq/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}