All Projects → PG1003 → dogfood

PG1003 / dogfood

Licence: MIT License
A tool for building self contained Lua executables

Programming Languages

lua
6591 projects
c
50402 projects - #5 most used programming language
Makefile
30231 projects
Batchfile
5799 projects
shell
77523 projects

Projects that are alternatives of or similar to dogfood

you-get.exe
You-Get unofficial build executable for Windows || You-Get 非官方构建的可执行文件
Stars: ✭ 40 (+53.85%)
Mutual labels:  standalone, executable
observable-to-standalone
Importing an Observable notebook into a standalone application
Stars: ✭ 31 (+19.23%)
Mutual labels:  standalone
docker-udata
udata and plugins all-in-one Docker image
Stars: ✭ 15 (-42.31%)
Mutual labels:  standalone
rstpad
Standalone reStructuredText editor with live preview (native app)
Stars: ✭ 35 (+34.62%)
Mutual labels:  standalone
dali
Indie assembler/linker for Dalvik VM .dex & .apk files (Work In Progress)
Stars: ✭ 55 (+111.54%)
Mutual labels:  standalone
jsxt
The collection of Javascript / JScript / VBScript extensions, tools and more
Stars: ✭ 23 (-11.54%)
Mutual labels:  standalone
mem64
Run Any Native PE file as a memory ONLY Payload , most likely as a shellcode using hta attack vector which interacts with Powershell.
Stars: ✭ 26 (+0%)
Mutual labels:  executable
TwitterPiBot
A Python based bot for Raspberry Pi that grabs tweets with a specific hashtag and reads them out loud.
Stars: ✭ 85 (+226.92%)
Mutual labels:  standalone
HatVenom
HatVenom is a HatSploit native powerful payload generation tool that provides support for all common platforms and architectures.
Stars: ✭ 84 (+223.08%)
Mutual labels:  executable
not-only-mining-pool
new generation general mining pool in go
Stars: ✭ 31 (+19.23%)
Mutual labels:  standalone
FullProxy
Bind and reverse connection based, SOCKS5, HTTP and PortForward based portable proxy
Stars: ✭ 22 (-15.38%)
Mutual labels:  executable
ELFDump
ELFDump is a C parser for ELF64 object files.
Stars: ✭ 15 (-42.31%)
Mutual labels:  executable
make-deno-edition
Automatically makes package.json projects (such as npm packages and node.js modules) compatible with Deno.
Stars: ✭ 39 (+50%)
Mutual labels:  executable
parcl
Gradle plugin for bundling your Java application for distribution on Windows, Mac and Linux
Stars: ✭ 52 (+100%)
Mutual labels:  executable
zwave-core
Flexible Z-Wave Service Server - Access your Z-Wave nodes fast and independent - Planned/supported: REST-API, Browser UI, MQTT* - Perfect for maintaining big node-numbers, drop-in ozwcp replacement!
Stars: ✭ 19 (-26.92%)
Mutual labels:  standalone
get-bin-path
Get the current package's binary path
Stars: ✭ 25 (-3.85%)
Mutual labels:  executable
basgo
basgo compiles BASIC-lang to Golang. Then 'go build' can translate code to native executable binary.
Stars: ✭ 31 (+19.23%)
Mutual labels:  executable
proptypes
💂‍♂️ React's PropTypes, as a standalone module.
Stars: ✭ 60 (+130.77%)
Mutual labels:  standalone
docker-spark
Apache Spark docker container image (Standalone mode)
Stars: ✭ 34 (+30.77%)
Mutual labels:  standalone
hls-live-thumbnails
A service which will generate thumbnails from a live HLS stream.
Stars: ✭ 49 (+88.46%)
Mutual labels:  standalone

A tool for building self contained Lua executables

This tool is an alternative for srlua which can be found here.

The main points where dogfood differs from srlua are:

  • One self contained executable.
  • Can embed multiple Lua modules in one executable.
  • No support for Lua 5.1 and older.

Other features:

  • Does not depend on a C compiler to build self contained Lua executables.
  • dogfood self can be build for Unix like operating systems and Windows.

dogfood consists of two parts; a Lua interpreter and a Lua module that creates the self executable Lua programs. The interpreter runs the dogfood's Lua module that is appended at the end of the executable. The module reuses the interpreter when it builds a self contained Lua executable by copying its interpreter and then append the user's Lua modules.

dogfood owes its name to the reuse of its own interpreter. Using your own software products is also knowns as dogfooding.

Requirements

  • Lua version 5.2, 5.3 or 5.4

Usage of dogfood

dogfood [OPTIONS] OUT MODULE...

OUT is the destination of the resulting program
The first MODULE from the list is the entry point of the program while the optional extra modules are accessable by require. The modules are provided without the '.lua' extention.
C modules cannot be embedded in the resulting program but the program can load C modules when they are placed in one of the package.cpath search paths.

The following OPTIONS are available.

Option Description
-c, --compile Compile the modules and embed them as bytecode.
-s, --strip-debug-information Strips the debug information from the bytecode.
-h, --help Shows the help.
-m Adds the given path to package.loaded to search for modules that are provided as parameter.
-v, --lua-version Shows the Lua language version of the interpreter used by the resulting program..

Dogfood binaries for Windows

Building dogfood binaries for Windows requires more effort than for Unix like operating systems.
The following executables are available for download to lower the bar for Windows users that want to try dogfood or don't have the knowledge to build it.

Lua version dogfood v1.0.2 x86-64 dogfood v1.0.2 x86-32
5.2.4 download download
5.3.6 download download
5.4.4 download download

Bootstrapping

Right after compilation, a dogfood binary must be bootstrapped before it is able to build self contained Lua executables. The makefile provided with the sources already takes care of this. In case when you have your own build environment, a bootstrap shell script is provided for Unix like environments and for Windows.

The usage of the bootstrap script is as follows;

bootstrap.sh EXECUTABLE food.lua OUT

For Windows bootstrap.bat instead of bootstrap.sh is used but the commandline prameters are same.

EXECUTABLE is the path to the executable that needs to be bootstrapped.
The file food.lua contains dogfood's logic. You can find this file in the source directory.
OUT is the destination of the resulting executable. EXECUTABLE and OUT can point to the same file.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].