Releases: ottermq/goodiesdb
Release v0.7.0
Highlights
New Features
-
Configurable Persistence Path: Persistence file paths are now configurable via .env file, offering greater flexibility for deployment setups.
-
Docker Support:
-
Dockerfile: Added a multi-stage Dockerfile for efficient and lightweight containerization.
-
Docker Compose: Added
docker-compose.ymlfor easy multi-container management and deployment.
-
Continuous Integration/Continuous Deployment (CI/CD)
-
GitHub Actions: Implemented GitHub Actions for automated building and testing, ensuring reliability and stability of the codebase.
-
Build and Test Status Badge: Added a GitHub badge to display the status of Go build and test workflows, improving visibility and tracking of build health.
Improvements
- Optimized Docker Image: Utilized multi-stage builds to produce a slim and efficient final Docker image, reducing overhead and improving performance.
Full Changelog: v0.6.0...v0.7.0
Release v0.6.0
Highlighs
This release marks the reach of the original milestones for this project, although there is a lot of work to do.
The next goal is to do some minor polishing, optimizations and adjustments for better compatibility with redis clients.
A parallel project is in the planning phase. It is a web api that serves as a client for GoodiesDB server.
Full Changelog: v0.5.0...v0.6.0
Release v0.5.0
New Features and Improvements
- Server Commands: Implemented essential server-related commands such as
INFO,PING,ECHO,QUIT,SELECT,FLUSHDB, andFLUSHALLto enhance server management and interaction. - Signal Handling: Added termination signal handling for graceful server shutdown on receiving signals like
SIGINT(Ctrl+C) andSIGTERM. - Command Organization: Refactored the server to improve the organization and management of available commands.
- Flexible Persistence Configuration: Enabled configuration to support various persistence modes: AOF, RDB, both, or none. This allows users to choose their preferred persistence method using environment variables.
- Dynamic Git Versioning: Integrated dynamic versioning using Git tags, ensuring the server version is always up-to-date based on the latest Git tag.
- Logging Enhancements: Improved logging for better debugging and diagnostics, providing clear insights into server operations and command handling.
Bug Fixes
Persistence Handling: Fixed initialization and startup flow to ensure proper recovery and persistence handling, preventing the server from hanging during startup.
How to Update
To update to this release, pull the latest changes from the repository and build the project using the Makefile:
git pull
make build
make run
Full Changelog: v0.4.0...v0.5.0
Release v0.4.0
New Features
- Implemented LPUSH, RPUSH, LPOP, and RPOP: Enhanced list management functionalities.
- Added LRANGE and LTRIM: New commands to handle ranges and trimming lists.
Improvements
- AOF Handling: Updated to support the new list commands.
- Expiration Checks: Integrated expiration checks in
LPOPandRPOP. - Testing: Comprehensive tests for the new commands to ensure robustness.
Bug Fixes
- Fixed LPUSH Implementation: Corrected the insertion order for
LPUSH.
Full Changelog: v0.3.0...v0.4.0
Release v0.3.0
Release v0.3.0: Security and Configuration Enhancements
Overview
This release introduces important security features and enhancements for flexible configuration.
Features
-
AUTH Command:
- Implemented the
AUTHcommand to enable password-protected client connections. - Ensured that commands are only processed if the connection has been authenticated.
- Implemented the
-
Configuration Loading:
- Added support for loading configuration from environment variables and .env files.
- Implemented fallback to default values if no configuration is found.
- Enhanced flexibility for deployment in different environments.
Improvements
- Environment Configuration:
- Integrated
godotenvto load configuration from .env files. - Updated the server configuration to support environment-specific settings.
- Integrated
Notes
- These changes improve the security and flexibility of the Redis clone server.
- Feedback and contributions are welcome! Feel free to open issues or submit pull requests to help improve the project.
Thank you for supporting our project. Stay tuned for more updates!
Full Changelog: v0.2.0...v0.3.0
Release v0.2.0
Release v0.2.0: Persistence Enhancements
Overview
This release introduces robust persistence mechanisms, ensuring data durability and reliable state recovery.
Features
-
RDB Snapshots:
- Periodic saving of the entire dataset to a snapshot file.
- Ability to load the dataset from a snapshot on startup.
-
AOF Logging:
- Append-Only File (AOF) logging for all write operations.
- Replay AOF logs on startup to restore the server state.
Improvements
- Enhanced Testing:
- Comprehensive tests for snapshot saving, loading, and AOF recovery.
Notes
- These changes significantly improve data durability and reliability.
- Feedback and contributions are welcome! Feel free to open issues or submit pull requests to help improve the project.
Thank you for supporting our project. Stay tuned for more updates!
Full Changelog: v0.1.0...v0.2.0