v_queue 0.3.1

simple file based queue
Documentation

V-Queue

Simple file based queue implementation in Rust with Java bindings and network server.

Components

Core Library (v-queue)

Fast file-based message queue with the following features:

  • High-performance sequential file I/O
  • CRC32 integrity checking
  • Automatic partitioning
  • Consumer offset management
  • Thread-safe concurrent access
  • Java bindings via JNI

Network Server (v-queue-server)

NEW: HTTP/REST API server providing consumer endpoints for the v-queue system.

Features:

  • RESTful HTTP API
  • Consumer endpoints with automatic offset management
  • Administrative endpoints for queue/consumer management
  • Health monitoring
  • JSON message format
  • Multiple concurrent consumers per queue
  • Cross-platform compatibility
  • Note: Message production requires direct library access (no HTTP producer API)

Quick Start

Build Core Library

cargo build --release

Build and Run Network Server

cd v-queue-server
cargo run -- --bind 0.0.0.0:9093 --data-dir ./queues --log-level info

API Examples

# Health check (no auth required)
curl http://localhost:9093/health

# List available queues (auth required if enabled)
curl -u admin:password http://localhost:9093/api/v1/queues

# Consume messages from existing queue
curl -u admin:password \
  "http://localhost:9093/api/v1/queues/events/consumers/my-consumer/messages?max_messages=10"

# Commit consumer position
curl -X POST -u admin:password \
  http://localhost:9093/api/v1/queues/events/consumers/my-consumer/commit

# Get queue information
curl -u admin:password http://localhost:9093/api/v1/queues/events

Note: If authentication is disabled (auth_enabled = false or --no-auth), you can omit the -u admin:password part.

Documentation

Performance

  • High Throughput: Optimized for sequential disk I/O
  • Low Latency: Direct file access without additional layers
  • Persistence: All data durably stored on disk
  • Recovery: Automatic crash recovery and consistency

License

MIT License - see LICENSE file for details.