{"id":32985675,"url":"https://github.com/tongson/omnia","last_synced_at":"2025-11-16T16:01:01.801Z","repository":{"id":30441666,"uuid":"33995031","full_name":"tongson/omnia","owner":"tongson","description":"Batteries included Lua","archived":true,"fork":false,"pushed_at":"2020-11-05T01:13:06.000Z","size":1448,"stargazers_count":46,"open_issues_count":1,"forks_count":1,"subscribers_count":8,"default_branch":"master","last_synced_at":"2024-05-02T13:19:59.291Z","etag":null,"topics":["lua"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tongson.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-04-15T13:21:26.000Z","updated_at":"2023-08-01T08:50:07.000Z","dependencies_parsed_at":"2022-08-07T15:15:43.302Z","dependency_job_id":null,"html_url":"https://github.com/tongson/omnia","commit_stats":null,"previous_names":[],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/tongson/omnia","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongson%2Fomnia","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongson%2Fomnia/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongson%2Fomnia/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongson%2Fomnia/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tongson","download_url":"https://codeload.github.com/tongson/omnia/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tongson%2Fomnia/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":284734138,"owners_count":27054622,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-11-16T02:00:05.974Z","response_time":65,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["lua"],"created_at":"2025-11-13T08:00:33.766Z","updated_at":"2025-11-16T16:01:01.792Z","avatar_url":"https://github.com/tongson.png","language":"C","readme":"#### No longer maintained.\n\nFocused on the LuaJIT implementation at [omniajit](https://github.com/tongson/omniajit).\n\n\nOmnia -- Batteries included Lua\n=====\n\nCompile Lua, Fennel and MoonScript source code into standalone executables. This makes it easy to use Lua/Fennel/Moonscript for system programming and general purpose scripting.\n\nAnother Lua 5.3 build system for standalone executables.\n\nThis was made possible by [luastatic](https://github.com/ers35/luastatic)\n\nSimilar projects:\u003cbr\u003e\n[LuaDist](http://luadist.org/)\u003cbr/\u003e\n[luabuild](https://github.com/stevedonovan/luabuild)\n\nRequires: GNU Make, a compiler and binutils (or equivalent). Installing development tools e.g. the package build-essential should have everything you need. Does not require autotools.\u003cbr/\u003e\nNote: Linux and OS X only. xBSD soon.\n\n#### Getting started\n\n1. Download a release or clone the repo: `git clone --depth 1 https://github.com/tongson/omnia`\n\n2. Edit the following space delimited variables in the top-level Makefile\u003cbr/\u003e\n     MAIN: The \"main\" script in the `bin/` directory\u003cbr/\u003e\n     SRC: Modules that are specific to your application. Copy these to `src/lua`. \u003cbr/\u003e\n     SRC_DIR: Directories containing modules that are specific to your application. Copy these to `src/lua`.\u003c/br\u003e\n     SRC_C: C modules that are specific to your application. Copy these to `src/c`.\u003cbr/\u003e\n     VENDOR: 3rd party modules\u003cbr/\u003e\n     VENDOR_DIR: directories containing 3rd party modules\u003cbr/\u003e\n     VENDOR_C: 3rd party C modules\u003cbr/\u003e\n\n3. Copy the main source file into the `bin/` directory.\n\n4. Copy modules into `src/lua/` or `vendor/lua/`.\n\nThe SRC, VENDOR split is just for organization. Underneath they are using the same Make routines.\n\nRun `make` during development or `make release` for the final executable without debug symbols in `bin/`.\u003cbr/\u003e\nIf you want to link statically run `make release STATIC=1`\u003cbr/\u003e\n\nYou can also use omnia as a base of the monorepo of your Lua/Fennel/Moonscript code.\n\n#### Adding plain Lua, Fennel and MoonScript modules. (NOTE: VENDOR and SRC are interchangeable.)\n\nAdding plain modules is trivial. $(NAME) is the name of the module passed to `VENDOR`.\n\n1. Copy the module to `vendor/lua/$(NAME).{lua,fnl,moon}`\u003cbr/\u003e\n  example: `cp ~/Downloads/dkjson.lua vendor/lua`\n1. Add `$(NAME)` to `VENDOR`\u003cbr/\u003e\n  example: `VENDOR= re dkjson`\n\nFor modules that are split into multile files, such as Penlight:\n\n1. Copy the directory of the Lua module to `vendor/lua/$(NAME)`\u003cbr/\u003e\n  example: `cp -R ~/Download/Penlight-1.3.1/lua/pl vendor/lua`\n1. Add `$(NAME)` to `VENDOR_DIR`\u003cbr/\u003e\n  example: `VENDOR_DIR= pl`\n\nFor modules with multiple levels of directories you will have to pass each directory. Example:\u003cbr/\u003e\n  `VENDOR_DIR= ldoc ldoc/builtin ldoc/html`\n\nLua does not have the facilities to traverse directories and I'd like to avoid shell out functions.\n\n#### Adding C modules\n\n1. Provide a Makefile in `vendor/c/$(NAME)/Makefile`. See existing modules such as luaposix and lpeg for pointers.\n1. Add `$(NAME)` to `VENDOR_C`\n\n#### Development\n\nThe default make target is development which runs Luacheck against your Lua source code.\n\nLuacov is also integrated. Just run the your test code with Luacov loaded e.g. `bin/lua -lluacov tests.lua`. Then `bin/luacov.lua` to generate the report.\n\n#### Example application using omnia\n\nThe included Lua script might be too simplistic to demonstrate Omnia. For a more complicated application check my 'fork' of [LDoc](https://github.com/tongson/LDoc)\n\n#### Fennel and MoonScript support\n\nJust treat Fennel/MoonScript source the same as Lua source. The Make routines will handle the compilation of Fennel/MoonScript sources and link the appropriate compiled Lua source to the final executable.\n\nThe MoonScript standard library is included but you have to add `moon` to the `VENDOR` line in the Makefile.\n\nA copy of the MoonScript REPL `moor` is also included. To compile, run `make bin/moor`.\nA copy of the upstream Fennel REPL and compiler is also included. To compile, run `make bin/fennel`.\n\n#### Included projects\n\nProject                                                     | Version         | License\n------------------------------------------------------------|-----------------|---------\n[Lua](http://www.lua.org)                                   | 5.3.5           | MIT\n[luastatic](https://github.com/ers35/luastatic)             | 0.0.9-dev       | CC0\n[Fennel](https://github.com/bakpakin/Fennel)                | HEAD            | MIT\n[MoonScript](http://moonscript.org)                         | 0.5.0           | MIT\n[moor](https://github.com/Nymphium/moor)                    | HEAD            | MIT\n[linenoise](http://github.com/antirez/linenoise)            | lua-linenoise   | BSD 2C\n[moonpick](https://github.com/nilnor/moonpick)              | HEAD            | MIT\n[luacheck](https://github.com/mpeterv/luacheck)             | 0.19.0          | MIT\n[luacov](https://github.com/keplerproject/luacov)           | 0.12.0          | MIT\n\n#### Available modules (Feel free to open a Github issue if you want help with adding a new Lua module.)\n\nModule                                                                            | Version         | License\n----------------------------------------------------------------------------------|-----------------|---------\n[Luaposix](https://github.com/luaposix/luaposix)[1]                               | 34.0            | MIT\n[Linotify](https://github.com/hoelzro/linotify)                                   | 0.5             | MIT\n[LPeg](http://www.inf.puc-rio.br/~roberto/lpeg/)                                  | 1.0.1           | MIT\n[lsocket](http://tset.de/lsocket/)[2]                                             | 1.4             | MIT\n[luafilesystem](https://github.com/keplerproject/luafilesystem)                   | 1.6.3           | MIT\n[lua-linenoise](https://github.com/hoelzro/lua-linenoise)                         | 0.9             | MIT\n[inspect.lua](https://github.com/kikito/inspect.lua)                              | 3.1.0           | MIT\n[cimicida](https://github.com/Configi/configi)                                    | HEAD            | MIT\n[lib](https://github.com/Configi/configi)                                         | HEAD            | MIT\n[u-test](https://github.com/IUdalov/u-test/)                                      | HEAD            | MIT\n[px](https://github.com/Configi/configi)                                          | HEAD            | MIT\n[factid](https://github.com/Configi/configi)                                      | HEAD            | MIT\n[Lua-cURLv3](https://github.com/Lua-cURL/Lua-cURLv3)                              | b4d1d79         | MIT\n[plc](https://github.com/philanc/plc)                                             | HEAD            | MIT\n[argparse](https://github.com/mpeterv/argparse)                                   | 0.5.0           | MIT\n[dkjson](http://dkolf.de/src/dkjson-lua.fsl/home)                                 | c23a579         | MIT\n[lua-ConciseSerialization](https://framagit.org/fperrad/lua-ConciseSerialization) | 0.2.1           | MIT\n[luaproxy](https://github.com/arcapos/luaproxy)                                   | 6d7bb0c         | BSD 3C\n[luatweetnacl](https://github.com/philanc/luatweetnacl)                           | 0.5-1           | MIT\n[lua-array](https://github.com/cloudwu/lua-array)                                 | 676ba83         | MIT\n[lpty](http://tset.de/lpty/index.html)                                            | 1.2.2           | MIT\n[uuid](https://github.com/Configi/configi)                                        | HEAD            | Apache\n[ftcsv](https://github.com/FourierTransformer/ftcsv)                              | 1.1.6           | MIT\n\n[1] posix.deprecated and posix.compat removed\u003cbr/\u003e\n[2] Does not include the async resolver\u003cbr/\u003e\n","funding_links":[],"categories":["资源","Resources"],"sub_categories":["Build Tools and Standalone Makers","Batteries Included"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftongson%2Fomnia","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftongson%2Fomnia","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftongson%2Fomnia/lists"}