All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.4.0 - 2025-12-03
- Custom
.envparser implementation (117.5x faster than pydantic-settings) - Zero-dependency .env file parsing (removed python-dotenv)
- Smart caching for .env files (169x faster on repeated loads)
- BREAKING: Replaced python-dotenv with custom fast parser
- Updated benchmark results: 7x faster than pydantic-settings (Google Colab)
- Improved cold start performance: 0.353ms vs 2.47ms (pydantic)
- Enhanced warm load performance: 0.011ms vs 1.86ms (pydantic)
- Cold start: 7.0x faster than pydantic-settings
- Warm loads: 169x faster than pydantic-settings
- .env parsing: 117.5x faster than pydantic-settings
0.3.4 - 2025-12-02
- Minor bug fixes and stability improvements
0.3.3 - 2025-12-02
- Resolved publish workflow failures in CI/CD pipeline
- Fixed version extraction in release automation
0.3.2 - 2025-12-02
- CodeQL security scanning workflow
- Automatic PR labeling workflow
- Monthly pre-commit hook auto-update workflow
- Aligned all GitHub Actions workflows with msgtrace-sdk standards
- Updated publish workflow to automatically create release tags
- Disabled labeler workflow for fork PRs (prevents failures)
- Fixed publish workflow version extraction (now uses grep instead of Python import)
0.3.1 - 2025-12-02
uv.lockfile for reproducible builds across environments
- Improved dependency management with lock file
0.3.0 - 2025-12-02
- Comprehensive benchmark suite with statistical analysis
- Support for nested configuration via environment variables
- Detailed performance comparison documentation
- Example files demonstrating nested settings
- Moved benchmark files to dedicated
/benchmarkdirectory - Updated performance benchmarks: 3.8x faster than pydantic-settings
- Enhanced benchmark with 10 runs and statistical validation
- Improved README with accurate, reproducible performance claims
- Merge-bot workflow now correctly handles PR branch checkouts
- Lint and formatting issues in benchmark code
- Field ordering in struct creation (required before optional)
0.2.0 - 2025-01-20
- Support for
Optionalfields with proper None handling - JSON parsing for list and dict types from environment variables
model_dump()method for serialization to dictmodel_dump_json()method for JSON serializationschema()method for JSON Schema generation
- Improved type conversion for complex types
- Enhanced error messages for validation failures
- Boolean conversion edge cases (true/false/1/0/yes/no)
- Type handling for nested structures
0.1.0 - 2025-01-15
- Initial release of msgspec-ext
BaseSettingsclass for environment-based configuration.envfile support via python-dotenv- Type validation using msgspec
- Support for common types: str, int, float, bool, list, dict
- Field prefixes (
env_prefix) and delimiters (env_nested_delimiter) - Case-sensitive and case-insensitive matching
- JSON schema generation
- Performance optimizations with bulk JSON decoding
- Comprehensive test suite (22 tests)
- Examples demonstrating basic usage, prefixes, .env files, and advanced types
- 3.8x faster than pydantic-settings in initial benchmarks
- Bulk validation in C via msgspec (zero Python loops)
- Cached encoders/decoders for repeated use