Animus is an in-memory database (like Redis) written in Go. It offers a lightweight, high-performance storage solution with support for various commands and data structures.
To see all the supported commands, go to doc.go file.
- Expiration Mechanism: Support for TTL (Time-to-Live) and expiry policies.
- Data Types: Support for strings, lists, hashes, and advanced data structures.
- Key Management: Automatic key expiration, deletion, and manipulation.
- Concurrency: Optimized for high concurrency and scalability.
The following features are planned for future releases:
- Configuration Support: Allow users to configure expirations, max memory, etc.
- Key Locking: Implement pools for key locks to handle high memory usage and key-based locking for essentials.
- Advanced Data Structures: Expand support for additional data structures like sets, sorted sets, and more.
- Replication: Master-slave replication to enable high availability and fault tolerance.
- Pub/Sub: Real-time messaging with Publish/Subscribe functionality.
- Performance Optimizations: Optimizations to the event loop for enhanced performance.
- Clustering & Sharding: Scalable architecture with clustering and sharding.
-
Test coverage can be verified by generating a cover.html file.
-
To generate the cover.html file, run these commands:
go test -v -coverprofile cover.out ./...go tool cover -html cover.out -o cover.htmlLatest releases can be found here - https://pkg.go.dev/github.com/divy-sh/animus
- First package release. Can be found here - https://pkg.go.dev/github.com/divy-sh/animus@v0.0.1
- Refactor packages to have better names so that there are no potential naming conflicts - https://pkg.go.dev/github.com/divy-sh/animus
- Add these functions
- GETSET, INCR, INCRBY, INCRBYFLOAT
- Add many other commands, details can be found in doc.go file.
Animus is licensed under the GNU General Public License v3.0 (GPL-3.0). See the LICENSE file for more information.