Skip to content
View rsenn's full-sized avatar
  • Freiwillig im Einsatz für die Städtische Neophytenbekämpfung Bern
  • Bern, Switzerland (CH)

Block or report rsenn

Block user

Prevent this user from interacting with your repositories and sending you notifications. Learn more about blocking users.

You must be logged in to block users.

Content in all repositories owned by your account will be closed.
Maximum 250 characters. Please don’t include any personal information such as legal names or email addresses. Markdown is supported. This note will only be visible to you.
Report abuse

Contact GitHub support about this user’s behavior. Learn more about reporting abuse.

Report abuse
rsenn/README.md

Roman Leonz Senn

Systems software developer and embedded hardware engineer specializing in low-level C architectures, lightweight runtimes, high-performance embedded systems, and custom QuickJS bindings.


Featured Projects

  • shish — A minimalist POSIX-ish shell in C (~139 KB) built against libowfat without standard stdio. Designed for resource-constrained containers, AI agent harnesses, and WebAssembly (.wasm) environments with fork-less execution and built-in core utilities.
  • qjs-lws — Native C bindings and server architecture bridging the QuickJS engine with libwebsockets to provide high-performance, lightweight web server and networking interfaces.
  • qjs-opencv — Computer vision bindings and super-resolution text processing pipelines for QuickJS powered by OpenCV ONNX models.
  • qjs-modules — Collection of native C extension modules and runtime integrations for QuickJS.
  • qjs-nanovg — NanoVG vector graphics bindings for QuickJS, enabling hardware-accelerated 2D rendering directly from JavaScript.
  • qjs-ffi — libffi and dlopen for QuickJS: call C functions and pass JS callbacks without writing glue code, with generated bindings for cairo, SDL2, freetype, libcurl and more.
  • qjs-glfw — GLFW windowing and context management bindings for QuickJS.
  • qjs-imgui — Dear ImGui bindings for QuickJS, mirroring the C++ ImGui:: API for immediate-mode GUIs (typically driven by GLFW + OpenGL).
  • qjs-sound — Audio bindings for QuickJS built on PortAudio, LabSound and SoundTouch.
  • qjs-debugger — A gdb-style source-level debugger for QuickJS, written in JavaScript, with a terminal REPL and a nanovg/glfw GUI frontend.
  • ipe32 — The ind00r poly engine: a 32-bit polymorphic code engine in x86 assembly, with NASM, TASM and YASM builds.

The qjs-* projects are built against my QuickJS fork (branch cxx-designated): a CMake-ified qjs with a module search path and Koushik Dutta's debugger implementation for QuickJS (see also his VS Code debug adapter). It is required to build them.


Embedded & Hardware

  • pictest — PIC firmware test bench and experiments.
  • piclib — Small C drivers for PIC peripherals (ADC, comparator, 7-segment displays, DS18B20 and more).
  • libpicp — Portable Microchip PIC library.
  • USB-Stack — PIC16/PIC18 USB device stack with ping-pong buffering and endpoints 0–7.
  • USB-uC — USB bootloader that makes a PIC appear as a thumb drive; program it by dragging and dropping a hex file.
  • picstick_25k50 — PIC18F25K50 Pinguino-compatible USB stick.
  • picstick_27j53 — PIC18F27J53 Pinguino-compatible USB stick.
  • picstick_shield — Development shield PCB for the picstick.
  • lc-meter — Inductance/capacitance meter using a PIC16F876A and a Nokia 3310 LCD.
  • insider — INSIDER PIC tool: firmware, PCB and manual.
  • an-tronics — Collection of analogue electronics circuits and PCBs (40106/4069 synth, 555 oscillator, all-band receiver and others).
  • thomson-calculator — Calculator for Thomson's formula.

Other Software

  • chaosircd — IRC daemon built around runtime-reloadable modules: every client command, channel mode, user mode and flood check is a module.
  • c-utils — C utility library and command-line tools built on libowfat, with containers such as ranges, string arrays and lists.
  • sw-utils — Package management tools (pkgadd, pkgrm and friends), originally the pkgutils from the CRUX Linux distribution, extended with libswsh, a shell script library for platform abstraction.
  • ports — Ports repository based on sw-utils (heavily patched), originally from the CRUX Linux distribution.
  • libweb — Collection of browser-side JavaScript libraries and helpers.
  • scripts — Miscellaneous scripts.
  • beatflower — Music visualisation plugin for xmms 1.2.x on Linux.
  • Ba-dum-tss — Step sequencer for real-time synthesis of drums and bass.

Get in Touch

I am available for remote contracting, engineering collaborations, and custom systems development.

Pinned Loading

  1. qjs-modules qjs-modules Public

    Some modules for QuickJS (mmap, inspect)

    C 59 9

  2. qjs-glfw qjs-glfw Public

    Forked from Qard/quickjs-glfw

    GLFW bindings for QuickJS

    JavaScript

  3. qjs-http qjs-http Public

    Forked from protamail/quickjs-http

    C 1

  4. qjs-opencv qjs-opencv Public

    OpenCV bindings for QuickJS

    C++ 15 4

  5. quickjs quickjs Public

    Forked from bellard/quickjs

    Public repository of the QuickJS Javascript Engine. Pull requests are not accepted. Use the mailing list to submit patches.

    C 7 2

  6. qjs-net qjs-net Public

    Forked from khanhas/minnet-quickjs

    Minimal networking library for QuickJS

    C 29 3