Release Notes

Updates, fixes, and improvements across the Montycat database and its client libraries.

16 releasesLatest update · May 12, 2026
May 12, 2026
  • Implemented global key sequence indexing for all CRUD operations, enabling efficient paginated key retrieval across volumes
  • Added per-volume key indexes with batch processing for fast lookups and reverse iteration support
  • Integrated tikv-jemallocator for improved memory allocation performance and reduced fragmentation
  • Refactored volume memory tracking with an "always forward" strategy and explicit target volume support
  • Atomic inserts into persistent storage for improved write reliability
  • Bulk delete now streams indexing tasks per chunk, preventing memory pile-up under large workloads
  • Graceful shutdown with Unix signal handlers and interruptible sleep loops
  • Enhanced TLS key parsing to support multiple certificate formats; TLS handshake moved into a spawned task
  • Superowner credentials can now be configured via environment variables
  • Subscription server integrated with RootInmemory for consistent in-memory access
  • Enhanced store removal with detailed logging and proper cleanup for both persistent and in-memory stores
  • Improved server logging with task and type details via server_info helper
May 12, 2026
  • Fixed StoreRequestClient initialization where volumes and latest_volume fields were being ignored in get_bulk
  • Refactored get_bulk validation to allow any valid combination of volumes, latest_volume, and limit
  • Added optional subscription port parameter to the subscribe API
  • Comprehensive unit test suite with 72 tests across all core modules
  • Multi-platform CI/CD pipeline with GitHub Actions (Ubuntu, macOS, Windows)
May 12, 2026
  • v1.0.5–1.0.8: Fixed cache values, connection errors, empty string insertion, connection timeout, bulk write, and bulk read
  • Added volume-based retrieval in getBulk() for both persistent and in-memory keyspaces
  • v1.0.9: Stateless query refactor — command and limitOutput moved from class fields to local method parameters
  • subscribe() unified into the KV base class with optional subscriptionPort parameter, available on all keyspace types
  • cache and compression parameters moved from class fields to method parameters in createKeyspace() and updateCacheAndCompression()
  • Removed mutual-exclusivity restriction between withPointers and pointersMetadata
May 12, 2026
  • Stateless query refactor: parameters now passed directly to convert_to_binary_query instead of being set as class attributes
  • Improved bulk key handling using explicit concatenation for reliability
  • Refined limit validation logic across generic_kv and persistent_kv classes
  • Improved input validation for key retrieval and keyspace creation methods
March 31, 2026
  • Added subscribe() method to GenericKV, now available on both persistent and in-memory keyspaces
  • Removed mutual-exclusivity restriction between withPointers and pointersMetadata — both can now be used together
  • Standardized key validation: all methods now throw when both key and customKey are provided, or when neither is provided
  • Updated moduleResolution to "bundler" in tsconfig for improved compatibility
May 12, 2026
  • Signal server now loads or registers a persistent token on startup before sending any reports
  • Nodes that fail to obtain a token disable reporting gracefully instead of crashing
  • Token refresh logic added to handle expired or rejected tokens during the reporting loop
February 5, 2026
  • Improved schema enforcement and validation mechanisms
  • Added support for nullable values in schema fields (if schema enforced on database level) to improve flexibility in data modeling
  • Enhanced error handling and reporting across all client libraries
  • Release currently available through apt repo and Docker Hub only. Will add binaries for download soon
February 5, 2026
  • Allowed nullable values in schema fields (if schema enforced on database level) to improve flexibility in data modeling
  • Improved connection handling and error reporting
February 5, 2026
  • Allowed nullable values in schema fields (if schema enforced on database level) to improve flexibility in data modeling
  • Improved connection handling and error reporting
February 5, 2026
  • Allowed nullable values in schema fields (if schema enforced on database level) to improve flexibility in data modeling
  • Improved connection handling and error reporting
February 5, 2026
  • Allowed nullable values in schema fields (if schema enforced on database level) to improve flexibility in data modeling
  • Improved connection handling and error reporting
November 4, 2025
  • Introduced Montycat client libraries for Python, JavaScript, TypeScript, and Dart
  • Improved Gossip protocol communication and stability
  • Enhanced Proof of Stake consensus efficiency
  • Optimized storage engine performance and reduced memory footprint
  • Refined cluster synchronization and node discovery mechanisms
November 4, 2025
  • Seamless integration with Flutter for cross-platform apps
  • Fully async API with Stream support
  • Lightweight and dependency-free runtime core
  • Compatible with both mobile and desktop platforms
November 4, 2025
  • Async support via asyncio for non-blocking operations
  • Type hints and auto-completion for modern IDEs
  • Native serialization/deserialization with Montycat binary format
  • Integrated authentication and connection pooling
November 4, 2025
  • Compatible with both ES modules and CommonJS
  • Simple API for connecting, querying, and managing data
  • Optimized for low-latency web and server communication
  • Includes reconnect and retry strategies for resilient connections
November 4, 2025
  • Full async API with Promise-based operations
  • Lightweight, modular architecture with minimal dependencies
  • Supports Node.js environments
  • Integrated JSON and binary transport support
  • Comprehensive type definitions for all API methods