78 lines
2.1 KiB
Markdown
78 lines
2.1 KiB
Markdown
# Firefly Database
|
|
|
|
Firefly is a high-performance, Redis-compatible key-value store optimized for gaming applications. Built with native AOT compilation support for maximum performance.
|
|
|
|
## Features
|
|
|
|
- **Redis-Compatible**: Uses Redis Serialization Protocol (RESP) for compatibility with Redis clients
|
|
- **Concurrent Data Structures**: Uses parallel data structures for high throughput and low latency
|
|
- **Sharded Architecture**: Distributes data across multiple shards to reduce contention
|
|
- **Password Authentication**: Optional password protection for secure deployments
|
|
- **Native AOT Support**: Fully compatible with .NET Native AOT for maximum performance
|
|
- **Automatic Backups**: Configurable backup system with rotation
|
|
- **Multi-Datatype Support**: Strings, Lists and Hash Maps support
|
|
|
|
## Quick Start
|
|
|
|
```bash
|
|
# Start server with default settings
|
|
firefly
|
|
|
|
# Start with password authentication
|
|
firefly --password yourSecretPassword
|
|
|
|
# Start with custom port
|
|
firefly --port 6380
|
|
```
|
|
|
|
## Authentication
|
|
|
|
When starting Firefly with password protection, clients must authenticate:
|
|
|
|
```
|
|
AUTH yourSecretPassword
|
|
```
|
|
|
|
For more details on how to use authentication with different clients, see the [USAGE.md](USAGE.md) file.
|
|
|
|
## Building from Source
|
|
|
|
### Prerequisites
|
|
- .NET 9.0 SDK or later
|
|
|
|
### Build Commands
|
|
```bash
|
|
# Standard build
|
|
dotnet build
|
|
|
|
# Release build
|
|
dotnet build -c Release
|
|
|
|
# Native AOT build (Windows x64)
|
|
dotnet publish -c Release -r win-x64 --self-contained -p:PublishAot=true
|
|
|
|
# Native AOT build (Linux x64)
|
|
dotnet publish -c Release -r linux-x64 --self-contained -p:PublishAot=true
|
|
```
|
|
|
|
## Performance Benchmarks
|
|
|
|
The benchmark mode (`--benchmark`) runs a series of concurrent operations to test throughput:
|
|
|
|
```bash
|
|
firefly --benchmark
|
|
```
|
|
|
|
Typical results on modern hardware:
|
|
- ~500,000 operations per second for simple key-value operations
|
|
- ~250,000 operations per second for list operations
|
|
- ~150,000 operations per second for hash map operations
|
|
|
|
## License
|
|
|
|
MIT
|
|
|
|
## See Also
|
|
|
|
- [USAGE.md](USAGE.md) - Detailed usage instructions
|
|
- [ArmaFireflyClient](https://gitea.innovativedevsolutions.org/IDSolutions/ArmaFireflyClient/) - Arma 3 extension client |