rxi/classic
rxi/classic has 1,080 GitHub stars and 108 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-09 10:37 UTC. Last push 2021-12-31.
Tiny class module for Lua
Measured star growth
- in 24h
- 0
- in 7 days
- Update delayed
- in 15 days
- Update delayed
- in 1 month
- Update delayed
Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.
README.md
OriginalClassic
A tiny class module for Lua. Attempts to stay simple and provide decent performance by avoiding unnecessary over-abstraction.
Usage
The module should be dropped in to an existing project and required by it:
Object = require "classic"
The module returns the object base class which can be extended to create any additional classes.
Creating a new class
Point = Object:extend()
function Point:new(x, y)
self.x = x or 0
self.y = y or 0
end
Creating a new object
local p = Point(10, 20)
Extending an existing class
Rect = Point:extend()
function Rect:new(x, y, width, height)
Rect.super.new(self, x, y)
self.width = width or 0
self.height = height or 0
end
Checking an object's type
local p = Point(10, 20)
print(p:is(Object)) -- true
print(p:is(Point)) -- true
print(p:is(Rect)) -- false
Using mixins
PairPrinter = Object:extend()
function PairPrinter:printPairs()
for k, v in pairs(self) do
print(k, v)
end
end
Point = Object:extend()
Point:implement(PairPrinter)
function Point:new(x, y)
self.x = x or 0
self.y = y or 0
end
local p = Point()
p:printPairs()
Using static variables
Point = Object:extend()
Point.scale = 2
function Point:new(x, y)
self.x = x or 0
self.y = y or 0
end
function Point:getScaled()
return self.x * Point.scale, self.y * Point.scale
end
Creating a metamethod
function Point:__tostring()
return self.x .. ", " .. self.y
end
License
This module is free software; you can redistribute it and/or modify it under the terms of the MIT license. See LICENSE for details.
Explore related projects
codecrafters-io/build-your-own-x
Master programming by recreating your favorite technologies from scratch.
561,350 starspublic-apis/public-apis
A collective list of free APIs
497,601 starsmorluto/rea
Reverse engineer anything with agents, from app behavior down to native binaries.
446,856 starsopenclaw/openclaw
The AI that really does things. Any OS. Any Platform. The lobster way. 🦞
394,253 stars