Yet Another Lua Object-Oriented Model

Language shapes the way we think,
and determines what we can think about.
— B.L. Whorf


Like any other Internal DSL, lua-Coat is dual :

  • an Oriented Object Language
  • a Lua library

lua-Coat shares with Lua : the same syntax and the same style.

Language design is library design
and library design is language design.
— old
Bell Labs proverb


Perl5, like Lua, has no OO model, just OO mechanism. This allows a proliferation (or experimentation) of different model.

Now with Moose, Perl5 find its ultimate OO model. Moose borrows all the best features from Perl6, CLOS (LISP), Smalltalk and many other languages. Moose is built on top of a metaobject protocol, with full introspection.

Coat is light-weight Perl5 module which just mimics Moose. Now, Coat is deprecated, but there are some successors Mouse, Moo, Mo.

Finally, lua-Coat is the Lua port of Coat.


lua-Coat is in beta stage.

It was developed for Lua 5.1, 5.2 & 5.3.


After these HTML files, there are many unit tests in test/.

And finally, there are the code in src/ where you could check the availability of a feature.


lua-Coat source can be downloaded from GitHub.


The easiest way to install lua-Coat is to use LuaRocks:

luarocks install lua-coat

or manually, with:

make install


The test suite requires the module lua-TestMore.

make test

Copyright and License

Copyright © 2009-2014 François Perrad ohloh profile for François Perrad View François Perrad's profile on LinkedIn

This library is licensed under the terms of the MIT/X11 license, like Lua itself.