# V-Queue Overview
V-Queue is a simple, high-performance file-based message queue system implemented in Rust.
## What is V-Queue?
V-Queue is a message queue system designed for reliability and simplicity. It stores messages directly on disk using sequential file I/O, providing high throughput while ensuring data durability.
## Key Features
### Core Library (v-queue)
- **High-Performance Sequential I/O**: Optimized for fast disk operations
- **Data Integrity**: CRC32 checksums on all messages
- **Automatic Partitioning**: Manages multiple file partitions automatically
- **Consumer Offset Management**: Tracks consumer positions in queues
- **Thread-Safe**: Safe concurrent access from multiple threads
- **Java Bindings**: JNI support for Java applications
- **Zero External Dependencies**: Minimal dependency footprint
### Network Server (v-queue-server)
- **RESTful HTTP API**: Consumer API for reading messages
- **Consumer Model**: HTTP endpoints for message consumption
- **Multi-Consumer Support**: Multiple consumers per queue
- **Basic Authentication**: Optional security layer
- **Long Polling**: Efficient message consumption with timeouts
- **JSON and Binary Messages**: Flexible message formats
- **Health Monitoring**: Built-in health check endpoint
- **Cross-Platform**: Runs on Linux, macOS, Windows
- **Note**: Message production requires direct library access (no HTTP producer API)
## Architecture Components
```
┌─────────────────────────────────────────────────────┐
│ HTTP Clients │
│ (Python, Node.js, Rust, curl) │
└─────────────────────┬───────────────────────────────┘
│ REST API
┌─────────────────────▼───────────────────────────────┐
│ V-Queue Server (Axum) │
│ ┌──────────────┐ ┌──────────────┐ ┌────────────┐│
│ │ API │ │ Auth │ │ Queue ││
│ │ Handlers │ │ Middleware │ │ Manager ││
│ └──────────────┘ └──────────────┘ └────────────┘│
└─────────────────────┬───────────────────────────────┘
│ Direct Access
┌─────────────────────▼───────────────────────────────┐
│ Core V-Queue Library │
│ ┌──────────────┐ ┌──────────────┐ ┌────────────┐│
│ │ Queue │ │ Consumer │ │ Record ││
│ │ Manager │ │ Tracking │ │ Format ││
│ └──────────────┘ └──────────────┘ └────────────┘│
└─────────────────────┬───────────────────────────────┘
│ File I/O
┌─────────────────────▼───────────────────────────────┐
│ File System Storage │
│ (Partitioned Queue Files) │
└─────────────────────────────────────────────────────┘
```
## Use Cases
### Log Aggregation
Collect logs from multiple services and process them asynchronously.
### Event Processing
Distribute events to multiple consumers for parallel processing.
### Task Queues
Implement background job processing with reliable delivery.
### Data Pipelines
Build data processing pipelines with guaranteed message ordering.
### Message Buffering
Buffer messages between services with different processing speeds.
## Comparison with Other Solutions
| Setup Complexity | Low | High | Medium | Low |
| Dependencies | None | JVM, ZooKeeper | Erlang | Redis |
| Persistence | Always | Configurable | Configurable | Configurable |
| Performance | High | Very High | Medium | High |
| Ordering | Guaranteed | Guaranteed | Optional | Guaranteed |
| Multi-consumer | Yes | Yes | Yes | Yes |
| HTTP API | Yes | No (needs proxy) | Optional | No |
| Resource Usage | Low | High | Medium | Medium |
## Design Principles
1. **Simplicity**: Easy to deploy, configure, and operate
2. **Reliability**: All data persisted to disk with integrity checks
3. **Performance**: Optimized for sequential I/O patterns
4. **No External Dependencies**: Standalone binary
5. **Standard Protocols**: HTTP/REST for maximum compatibility
6. **File-Based Storage**: Simple to backup, replicate, and debug
## Limitations
- **Single-node**: No built-in clustering or replication
- **Local Disk Only**: Requires local file system
- **Sequential Processing**: Messages processed in order per consumer
- **No Message Filtering**: Consumers receive all messages
- **Basic Security**: Only HTTP Basic Authentication
## Next Steps
- [Architecture Details](02-architecture.md)
- [Installation Guide](03-installation.md)
- [API Reference](05-api-reference.md)