Changes for version 0.011000 - 2026-01-07

  • Packaging
    • Require Class::XSAccessor 0.016000.
    • Require Type::Tiny 2.010000.
  • Other
    • Added: Provide MooseX::Marlin and MooX::Marlin to allow Moose and Moo to inherit from Marlin classes and compose Marlin roles.
    • Marlin::Struct's magical coercion from arrayrefs is now aware of ':Alias'.
    • Marlin::XAttribute::Alias no longer forces PP constructors to be generated.
    • Move some attribute logic from Marlin to Marlin::Attribute making it easier for attribute extensions to override.
    • Partial support for inheritance from Object::Pad classes (but sometimes it segfaults).
    • Support inheritance from Class::Tiny classes.
    • Support inheritance from Mite classes and composing Mite roles.
    • Support inheritance from Mouse classes and composing Mouse roles.
    • Updated: Changes to work with newest Class::XSAccessor.

Documentation

comparing Moo, Moose, and class with Marlin
getting the most out of Marlin

Modules

🐟 pretty fast class builder with most Moo/Moose features 🐟
Marlin, but it's a role
quickly create struct-like classes
exports a few keywords it's nice to have with Marlin
Marlin extension to add a clone method to your class.
Marlin attribute extension for attribute aliases.
Marlin attribute extension for localizing attribute values.
Marlin attribute extension for lvalue accessors.
🐮 ❤️ 🐟 inherit from Marlin classes in Moo
🫎 ❤️ 🐟 inherit from Marlin classes in Moose

Provides

in lib/Marlin/Attribute.pm
in lib/Marlin.pm
in lib/Marlin/TypeConstraint.pm