v0.0.5

pydantic/montyv0.0.5Feb 16, 2026by samuelcolvin

AI Summary

Significant release with extensive memory safety improvements, fuzz testing, and bug fixes. Added Depth Guard, fixed multiple memory leaks, and improved platform support.

Key Highlights

  • Implemented Depth Guard for memory safety
  • Added fuzz testing
  • Fixed memory leak in id() function
  • Fixed i64::MIN division overflow in //, %, and divmod()
  • Fixed TypeError when comparing heap-allocated strings
  • Upgraded PyO3 to 0.28
  • Added linux-arm64 (aarch64-unknown-linux-gnu) JS binding support

New Features

  • Depth Guard
  • fuzz testing
  • linux-arm64 JS bindings
  • clap-based argument parsing

Full Release Notes

## What's Changed
* Upgrade GitHub Actions for Node 24 compatibility by @salmanmkc in https://github.com/pydantic/monty/pull/129
* always allocate empty tuple singleton at index 0 by @davidhewitt in https://github.com/pydantic/monty/pull/122
* don't leak in `id()` by @davidhewitt in https://github.com/pydantic/monty/pull/89
* Fuzz testing by @samuelcolvin in https://github.com/pydantic/monty/pull/119
* Depth Guard by @samuelcolvin in https://github.com/pydantic/monty/pull/131
* Simplify boilerplate when functions expect no kwargs by @davidhewitt in https://github.com/pydantic/monty/pull/139
* Avoid value leaks when checking for additional positional arguments by @davidhewitt in https://github.com/pydantic/monty/pull/140
* Bump PyO3 to 0.28 by @davidhewitt in https://github.com/pydantic/monty/pull/141
* introduce slice-based way to extract positional arguments by @davidhewitt in https://github.com/pydantic/monty/pull/144
* add wasmer to alternatives in readme by @samuelcolvin in https://github.com/pydantic/monty/pull/145
* handle `i64::MIN` division overflow in `//`, `%`, and `divmod()` by @zozo123 in https://github.com/pydantic/monty/pull/147
* Convert argument parsing to `clap` by @davidhewitt in https://github.com/pydantic/monty/pull/149
* Convert `src/types` files to `HeapGuard` by @davidhewitt in https://github.com/pydantic/monty/pull/143
* Add printer callback for javascript binding by @Embers-of-the-Fire in https://github.com/pydantic/monty/pull/146
* uprev ruff by @samuelcolvin in https://github.com/pydantic/monty/pull/155
* 4x safety multiplier in `check_pow_size` by @samuelcolvin in https://github.com/pydantic/monty/pull/158
* slim down typeshed by @samuelcolvin in https://github.com/pydantic/monty/pull/161
* Fix `TypeError` when comparing heap-allocated strings by @sathish-t in https://github.com/pydantic/monty/pull/159
* Fix CI by @samuelcolvin in https://github.com/pydantic/monty/pull/162
* fix: correct bugs in expense_analysis example by @Hupperich-Manuel in https://github.com/pydantic/monty/pull/152
* add `aarch64-unknown-linux-gnu` (linux-arm64) JS binding target by @Bl3f in https://github.com/pydantic/monty/pull/154
* enforce `max_duration` better by @samuelcolvin in https://github.com/pydantic/monty/pull/156

## New Contributors
* @salmanmkc made their first contribution in https://github.com/pydantic/monty/pull/129
* @zozo123 made their first contribution in https://github.com/pydantic/monty/pull/147
* @Embers-of-the-Fire made their first contribution in https://github.com/pydantic/monty/pull/146
* @sathish-t made their first contribution in https://github.com/pydantic/monty/pull/159
* @Hupperich-Manuel made their first contribution in https://github.com/pydantic/monty/pull/152

**Full Changelog**: https://github.com/pydantic/monty/compare/v0.0.4...v0.0.5