Skip to content

Latest commit

 

History

History
26 lines (19 loc) · 1.21 KB

File metadata and controls

26 lines (19 loc) · 1.21 KB

Changelog

0.2.0 - 2026-01-06

Added

  • Timeout support for eval/3 via :timeout option (milliseconds). Long-running JavaScript code can be interrupted, returning {:error, :timeout}. Uses QuickJS's built-in interrupt handler mechanism with monotonic clock for accurate timing. Context remains usable after timeout.

Changed

  • Change license from MIT to Apache 2.0
  • Add NOTICE file per Apache 2.0 requirements
  • Add attribution for derived code from tv-labs/lua

0.1.0 - 2025-12-29

  • Initial release of MquickjsEx
  • Embed MQuickJS JavaScript engine directly in Elixir processes via NIFs
  • Bidirectional function calls between Elixir and JavaScript using trampoline pattern
  • Automatic type conversion between Elixir and JavaScript types (nil, booleans, numbers, strings, lists, maps, functions)
  • MquickjsEx.API behaviour for defining reusable function modules with defjs macro
  • Support for nested scopes in API modules (e.g., utils.math.add)
  • Variadic function support via @variadic true attribute
  • Private storage for associating Elixir data with contexts without JavaScript exposure
  • Configurable memory limits (default 64KB, minimum 10KB)
  • Sandboxed execution with no file system or network access