Bifrost is a Redis-like in-memory database server implemented in Rust. It uses the RESP (Redis Serialization Protocol) for client-server communication and supports basic Redis commands.
- In-memory key-value storage
- RESP (Redis Serialization Protocol) support
- Concurrent connections using async I/O
- Thread-safe storage using
parking_lot::RwLock
To build the project, you'll need Rust and Cargo installed. Then run:
cargo build --release
To start the Bifrost server:
cargo run --release
By default, the server listens on 127.0.0.1:6379
.
Run the test suite with:
cargo test
Bifrost currently supports the following Redis commands:
PING
- Test connectionECHO <message>
- Echo back a messageGET <key>
- Get the value of a keySET <key> <value>
- Set the value of a keyDEL <key>
- Delete a keyEXISTS <key>
- Check if a key existsINCR <key>
- Increment the integer value of a keyDECR <key>
- Decrement the integer value of a key
You can connect to Bifrost using any Redis client. For example, using redis-cli
:
redis-cli -p 6379
Example commands:
127.0.0.1:6379> PING
PONG
127.0.0.1:6379> SET mykey "Hello"
OK
127.0.0.1:6379> GET mykey
"Hello"
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.