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 --releaseTo start the Bifrost server:
cargo run --releaseBy default, the server listens on 127.0.0.1:6379.
Run the test suite with:
cargo testBifrost 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 6379Example 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.