Skip to content
 
 

Repository files navigation

React Lua

A (mostly) runtime agnostic library for building user interfaces.

license


react-lua is a 1:1 translation of upstream React from JavaScript into Lua, and is highly-turned for both performance and correctness. When possible, upstream flowtype and definitely-typed types have been translated into Luau type annotations. The major and minor version of React Lua is aligned to the upstream used for the translation, except where noted. Due to the close nature of the two implementations, most article, video, or blog post that gives React JS advice can be applied to react-lua -- modulo language differences, of course.

Some experimental React JS 17 features, that are removed in React JS 18 and are not implemented in react-lua:

  • Blocks
  • SuspenseList
  • FundamentalComponent
  • createEventHandle API

Some React JS 17 features not yet translated in react-lua:

  • Server Components
  • (De)Hydration
  • Persistence
  • The supportsMutation = false option in the ReactHostConfig
  • ScopeComponent
  • some specific Text behavior not needed by the currently ported renderers

If you'd like to help port some of the missing features, search for unimplemented in the code.

While react-lua is written in the Luau dialect, bundler tools such as DarkLua can be used to transpile the implementation code to Lua code that is compatible with other Lua-based runtimes. Note that other Lua runtimes may need a new renderer implementation to be created, a reference renderer based on the React Native renderer is included in this repository.

TODO: Write the rest of the README.

About

A library for building user interfaces in Lua.

Resources

Code of conduct

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages