# 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
```bash
cargo build --release
```
### Build and Run Network Server
```bash
cd v-queue-server
cargo run -- --bind 0.0.0.0:9093 --data-dir ./queues --log-level info
```
### API Examples
```bash
# 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
- [Network Server Documentation](v-queue-server/README.md) - Complete API reference and client examples
- [Java Examples](java/example-vqueue/) - JNI usage examples
## 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.