Haserl is a small program that uses shell or Lua script to create cgi web scripts. It is intended for environments where PHP or ruby are too big. It was written for Linux, but is known to run on FreeBSD. A typical use is to run cgi scripts in an embedded environment, using a small web server, such as mini-httpd, lighty, or the server built into busybox.
he haserl binary typically compiles to less than 20KB (stripped). The lua language adds less than 150K if linked in statically. Parses like other scripting languages: Anything that is not enclosed in <% ... %>
tags is sent verbatim to the client. Form elements sent from the client are automatically parsed and placed into environment variables. The script can then reference the variables without any extra work. Mime data sent via the enctype="multipart/form-data" method is transparently decoded. This method is used when uploading files from the client. Attempts to drop its privileges to the uid/gid of the owner of the script for security.
A sub-1KB, self-hosting, native code Forth without compromise
At the core of paraforth is a very small assembly program - just an association list of names to subroutines, and an input loop for invoking them. By pre-populating the list with just enough functionality to build a macro assembler, a self-extensible language kernel is born.
This project is a long-running exercise in building the smallest self-sufficient Forth possible, without ANY sacrifices in speed or usability. No inputting pre-assembled machine code at runtime, and no cobbling together logic operations from NAND.
The entire language, save for just 15 words and 756 bytes of machine code, is implemented in itself - legibly - and builds in place on startup. Additionally, support for full bootstrapping coming soon.
sf-hab.org's RP2040 based PicoBalloon Tracker PCB generation 1 for STEM education, designed by AG6NS.
The New DSL 2024 has been reborn as a compact Linux distribution tailored for low-spec x86 computers. It packs a lot of applications into a small package. All the applications are chosen for their functionality, small size, and low dependencies. DSL 2024 also has many text-based applications that make it handy to use in a term window or TTY.
Creating the original DSL, a versatile 50MB distribution, was a lot of fun and one of the things I am most proud of as a personal accomplishment. However, as a concept, it was in the right place at the right time, and the computer industry has changed a lot since then. While it would be possible to make a bootable Xwindows 50MB distribution today, it would be missing many drivers and have only a handful of very rudimentary applications. People would find such a distribution a fun toy or something to build upon, but it would not be usable for the average computer user out of the gate. The new goal of DSL is to pack as much usable desktop distribution into an image small enough to fit on a single CD, or a hard limit of 700MB. This project is meant to service older computers and have them continue to be useful far into the future. Such a notion sits well with my values. I think of this project as my way of keeping otherwise usable hardware out of landfills.
PikaPython is an ultra-lightweight Python interpreter that runs with only 4KB of RAM, zero dependencies. It is ready to use out of the box without any configuration required and easy to extend with C.
Specifically supports a large number of microcontrollers.
Intel 8086 monitor program that fits in a single boot sector.
Tiny research project build on top of MicroPython providing DOS/POSIX-like operating system. Designed for ESP8266 and RP2040. Should work on any board with no or little changes.
I always wanted to make my own small operating system. I grew up using MS-DOS and now using Linux exclusively on all my computers. So my system will look very similar to those, just simpler. Another dream was to build as small a computer as possible. Now with 32-bit ESP8266 and MicroPython I could do that! So I did.
A super-tiny (512 bytes!) DOS with a My Little Pony schtick. Supports booting a live floppy image in QEMU.
SizeCoding.org is a wiki dedicated to the art of creating very tiny programs for most popular types of CPUs. As sizecoding is also popular on other hardware, we recently opened the website for other platforms as well, check the links below. By "very tiny programs", we mean programs that are 256 bytes or less in size, typically created by members of the demoscene as a show of programming skill. The size of these tiny programs is measured by their total size in opcode bytes, and are usually presented as an executable binary.
Despite their tiny size, these programs are able to produce amazing graphical displays, playable games, and sometimes music. There are even some surprisingly effective programs in just 16 bytes or even 8 bytes.
The intent of this wiki is to teach assembler programmers the various techniques used to create tiny demoscene intros. While these techniques can be used for other applications (boot sectors, ROM, BIOS and firmware code, etc.), the information presented here is firmly oriented towards the demoscene. Practicality and common sense are sometimes thrown out the window just to shave a single byte. Consider yourself warned.
Snek is a tiny embeddable language targeting processors with only a few kB of flash and ram. Think of something that would have been running BASIC years ago and you'll have the idea. These processors are too small to run MicroPython.
Snek borrows semantics and syntax from python, but only provides a tiny subset of that large language. The goal is to have Snek programs able to run in a full Python (version 3) implementation so that any knowledge gained in learning Snek will transfer directly to learning Python.
Github and list of supported microcontrollers: https://github.com/keith-packard/snek
A compact and portable WiFi reconnaissance suite based on the ESP8266. Packet Monitor with 11 filter types. Deauthentication and Disassociation Detector (HAXX). FTP Honeypot with Canary Tokens. Web Server (WIP). CSV Data logging (WIP).
The custom PCB is basically glue for two pressbuttons, an OLED display, an LED, and a power cell. You could pretty easily bodge one together out of spare parts.
htmx gives you access to AJAX, CSS Transitions, WebSockets and Server Sent Events directly in HTML, using attributes, so you can build modern user interfaces with the simplicity and power of hypertext
htmx is small (~10k min.gz'd), dependency-free, extendable & IE11 compatible.
Microdot is a minimalistic Python web framework inspired by Flask. Given its small size, it can run on systems with limited resources such as microcontrollers. Both standard Python (CPython) and MicroPython are supported.
A lightweight BASIC interpreter written in standard C. It's aimed to be embeddable, extendable and portable. It is a dynamic typed programming language, reserves structured syntax, supports a style of prototype-based programming (OOP), also implements a functional paradigm by lambda abstraction. The core is written in a C source file and an associated header file. It's easy to either use it as a standalone interpreter or embed it with existing projects.
A version of it is embedded in WWIV these days.