Giter Site home page Giter Site logo

kazuo256 / luxproject Goto Github PK

View Code? Open in Web Editor NEW
2.0 3.0 1.0 306 KB

A LuaRocks and LÖVE compatible general-purpose Lua distribution.

Home Page: http://kazuo256.github.io/luxproject/

License: MIT License

Shell 1.73% Lua 98.27%
lua-distribution general-purpose love2d

luxproject's Introduction

LUX Project

The Lua Utility eXtension Project is a general purpose Lua distribution developed with both LuaRocks and LÖVE compatibility in mind.

It bundles rocks on a per-project basis, injecting a local rocktree in the source tree. This allows LÖVE application developers to distribute their dependencies together with the application package, while also benefiting from the LuaRocks ecosystem. However, the LUX distribution is also completely adequate for developing non-LÖVE applications. Here's a quick rundown of the main features present in this Lua distribution:

  1. Portability through Lua 5.X series starting from 5.1
  2. Rock bundling on a per-project basis
  3. Bundle-aware script execution
  4. Prototype-based Object Oriented system
  5. Class-based Object Oriented system
  6. Functional programming library
  7. Macro/Template processing
  8. Unit test tools
  9. Prettified console output

Installation

Use LuaRocks.

Documentation

Latest stable version's documentation

luxproject's People

Contributors

aki-cat avatar kazuo256 avatar

Stargazers

 avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

aki-cat

luxproject's Issues

Review test module

Then re-implement it, if necessary, and create issues for all untested modules/features.

Closure class with environment

Improve current closure-based class system to use environment manipulation in order to simplify class definitions (complexity should remain the same).

A (good) side-effect is that class definitions will no longer have access to the global scope.

Can be more efficently implemented with #7.

Macro takeover

Add feature that makes all lua-required files be preprocessed by the macro engine. The necessary directive should something be:

require 'lux.macro.overtake'

And the preprocessor's envinronment content should be only lux.portable, for now.

Nuke struct.list

Because linked lists are evil.

Someday I might implement a contiguous memory linked list. Maybe.

[stream] Decide on a better interface for StreamBase:receive.

Right now stream.String:receive() poorly imitates Lua's standard file:read(), and it only supports the "*a" parameter.

One must find a better way to express how much to extract from the stream, and cover it in all StreamBase implementations.

Support for "make install" on Linux

Basically copy all files from the lib/ folder to the system's /usr/local/share/lua/5.1/ or similar.

For now providing this through the Makefile is enough.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.