Files
thpeetz-notes/Clippings/Impressive Open-Source Projects That Only A Few Programmers Know.md
T

168 lines
14 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
title: "Impressive Open-Source Projects That Only A Few Programmers Know"
source: "https://levelup.gitconnected.com/impressive-open-source-projects-that-only-a-few-programmers-know-c0f6b81d15fe"
author:
- "[[Shalitha Suranga]]"
published: 2024-10-22
created: 2024-10-29
description: "Free and open-source software projects, also known as FOSS projects turn million-dollar-worth innovative ideas into practical software products that anyone can use for free. Unlike budgeted, massive…"
tags:
- "clippings"
---
## Priceless open-source innovations that impress any programmer
[
![Shalitha Suranga](https://miro.medium.com/v2/resize:fill:88:88/1*3sLPPPykpFXoPCr3OYlunw.jpeg)
](https://shalithasuranga.medium.com/?source=post_page---byline--c0f6b81d15fe--------------------------------)
[
![Level Up Coding](https://miro.medium.com/v2/resize:fill:48:48/1*5D9oYBd58pyjMkV_5-zXXQ.jpeg)
](https://levelup.gitconnected.com/?source=post_page---byline--c0f6b81d15fe--------------------------------)
![](https://miro.medium.com/v2/resize:fit:700/1*sNhaHM0vvKaYlb7A9ObTCQ.png)
Photo by [Kari Shea](https://unsplash.com/@karishea?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash) on [Unsplash](https://unsplash.com/photos/macbook-pro-on-top-of-brown-table-1SAnrIxw5OY?utm_content=creditCopyText&utm_medium=referral&utm_source=unsplash), edited with Canva
Free and open-source software projects, also known as FOSS projects turn million-dollar-worth innovative ideas into practical software products that anyone can use for free. Unlike budgeted, massive proprietary software owned by commercial organizations, open-source software usually gets started by one enthusiastic programmer or a small developer group with non-profit goals. Once the specific open-source product becomes popular, experienced technical users contribute to the project to further improve it.
Experienced programmers typically build and maintain open-source desktop, mobile, CLI apps, and various software libraries or developer tools that other programmers can use for free even to develop commercial software projects. In some scenarios, programmers release their existing closed-source software projects or a usable part of a specific proprietary project to the open-source community.
We all know popular open-source projects like Linux, React, Apache HTTP server, Git, Node, etc., but there are more remarkable open-source projects that only a few programmers know. This article will explore several innovative open-source projects built upon impressive, priceless technical ideas.
## Pyodide — Running Python on the Browser via WebAssembly
What if you are given a task to develop a web-based Python REPL or Python editor that can execute Python code? Most developers will plan to run the official Python interpreter on a server and implement a communication line with the web app frontend using HTTP or WebSockets.
The innovative [Pyodide](https://github.com/pyodide/pyodide) open-source project ports the official Python implementation (also known as CPython) into WebAssembly using the Emscripten compiler to let developers execute Python directly on the web browser:
![](https://miro.medium.com/v2/resize:fit:700/1*MGRPET2TT0nQcEIneUWyMQ.gif)
Using the [online Pyodide REPL](https://pyodide.org/en/stable/console.html) on Google Chrome, a screen recording by the author
Pyodide lets developers download Python modules to the browser using the Python-based micropip package manager.
Installing Pyodide is so simple as it comes as a simple JavaScript library. Here is how you can use Pyodide in a plain HTML project:
```
<script src="https://cdn.jsdelivr.net/pyodide/v0.26.2/full/pyodide.js"></script><script> async function main() { let pyodide = await loadPyodide(); console.log(pyodide.runPython(\` import math math.sqrt(20.1) \`)); // 4.483... }; main();</script>
```
You can also install Pyodide into your favorite frontend library-based projects by installing the `[pyodide](https://www.npmjs.com/package/pyodide)` NPM package.
## Lite-XL — A Native, High-Performance, and Minimal Alternative to VSCode
Most developers nowadays use the popular Visual Studio Code (VSCode) editor to work with various software codebases. Because of productivity-focused features and the massive extension ecosystem, VSCode has become the most recommended code editor in the modern software industry.
However, VSCode has [hidden performance issues](https://levelup.gitconnected.com/native-apps-are-dead-189a4b9459e9) since its a hybrid desktop app that runs on the popular Electron framework. VSCode doesnt render native UI elements and it uses typical DOM elements even to render thousands of source code segments, as shown in the following preview:
![](https://miro.medium.com/v2/resize:fit:700/1*2BBFC-3Jm54OZ9_MFTRNww.gif)
VSCode implements the syntax-highlighting feature with traditional DOM elements, a screen recording by the author
The [Lite-XL](https://github.com/lite-xl/lite-xl) editor is a minimal, cross-platform code editor program that offers most VSCode features. Lite-XL is written using Lua and C. It renders graphical elements natively using the SDL2 low-level multimedia library and embeds the minimal Lua language to implement code editor features:
![](https://miro.medium.com/v2/resize:fit:700/1*QKvg_pTk05zo5xx7XVwKRQ.png)
Lua-based initialization script in the Lite-XL project, a screenshot by the author
Lite-XL follows an impressive architectural pattern by separating code editor features into several Lua-based plugins with a self-explanatory internal API. Lite-XL is built as an extensible code editor that programmers can use to build their own code editor version by writing or modifying plugins or updating the editor core.
Lite-XL is a fork of the Lite open-source code editor. The following story explains further about the Lite code editor project:
## Serenity OS — A Fully-Featured Operating System Developed from Scratch
Ask your co-worker to build a POSIX-compatible, GUI operating system from scratch without using any code dependency and copying code from other open-source projects. The typical response is that developing an operating system from scratch alone is hard. Well have to write kernel modules, device drivers, file systems, network layers, libraries, process runners, and inbuilt applications ourselves. But, nothing is impossible — any motivated programmer can build a fully-featured, complete operating system.
[Serenity OS](https://github.com/SerenityOS/serenity) is a complete GUI operating system written in C++ maintaining good POSIX compliance. The importance of this operating system is that every component in the codebase is written from scratch and initiated by only one programmer (now there are more project contributors on GitHub).
This operating system implements a Windows 95-like GUI and offers several pre-included general-purpose software like a web browser, terminal, text editor, and calculator:
![](https://miro.medium.com/v2/resize:fit:700/1*dIRu7eKcclebXuPHZqmfKw.png)
A screenshot of Serenity OS, image taken from the GitHub repository licensed under the BSD 2-clause license
Serenity OS also implements a pre-included IDE called Hack Studio and includes ports for popular software and developer tools like GNU C compiler, Bash, etc.
## Ladybird — a Truly Independent Modern Web Browser
Google and Mozilla dominate the current web browser market since they maintain the Chromium and Firefox web browsers respectively. Due to the popularity within the open-source ecosystem and easy embedding capabilities, companies started building their own custom web browsers using Google Chromium open-source browser. For example, Microsoft Edge and Opera started using Chromium browser engine components.
Chromium is not a project that started from scratch, it uses a fork (called Blink) of the WebKit web browser engine which was originally a part of the KDE project:
![](https://miro.medium.com/v2/resize:fit:700/1*JvVpPYQ4BRUBtSr14QAHKA.png)
KDE and Apple (WebKit) copyright details in the Blink engine license headers, a screenshot by the author
What if there is a fully-featured, modern web browser that is built from scratch by a non-profit organization? Users wont be motivated to use company-specific services and wont be a part of a massive monetization process — the user will be able to surf the web with freedom!
[Ladybird](https://github.com/LadybirdBrowser/ladybird) is a fully-featured, modern web browser backed by a non-profit organization. Ladybird uses C++ as the implementation language and doesnt borrow a single code line from other web browser projects.
This project was originally initiated from the Serenity OSs web browser. The Ladybird project is still under development and is planned to be released in 2026 for the general public as a competitive Chrome-Firefox alternative.
## Temple OS — A Minimal Operating System Developed by One Programmer
Software development is typically a collaborative process where more than one programmer contributes to a codebase for building a software system. However, some enthusiastic programmers love to work alone even if they are building something complex.
[Temple OS](https://github.com/cia-foundation/TempleOS) is a 64-bit minimal GUI operating system that renders graphics via a 16-color low-resolution viewport. According to [Wikipedia](https://en.wikipedia.org/wiki/TempleOS), The sole author of the Temple OS project wrote more than 100000 LOC (Lines of Code) alone to finalize the project. This project is written in HolyC, a C/C++-like programming language that generates x64 Assembly:
![](https://miro.medium.com/v2/resize:fit:700/1*VlJ6VXKPNlRUUcYzQrMsyg.png)
Temple OS logo, a screenshot of the official project website
Temple OS offers several general-purpose apps and many games. Its not a highly usable, general-purpose, fully-featured operating system, but its undoubtedly a good motivation for all solo open-source programmers to never give up their dreams!:
![](https://miro.medium.com/v2/resize:fit:700/1*znKq5gMQJiPF0u4wx96wLg.png)
A part of the bootstrapped HolyC compiler source, a screenshot by the author
The Temple OS project is not maintained now and is considered finished since the original author isnt alive. However, the [ZealOS](https://github.com/Zeal-Operating-System/ZealOS) project is an active codebase fork that offers a modernized version of Temple OS.
## QuickJs — A Lightweight, Embeddable JavaScript Engine Written in C
I found the [QuickJs](https://github.com/bellard/quickjs) project while searching the longest C source file. I thought the GNU C compiler parser module was the longest C source file ever created (27430 LOC), but the QuickJS engine's primary source file has 55980 LOC:
![](https://miro.medium.com/v2/resize:fit:700/1*W_iz0XAADnDyFbVRWMd88A.png)
The [quickjs.c](https://github.com/bellard/quickjs/blob/master/quickjs.c) source file has 55980 LOC, a screenshot by the author
QuickJs project implements a modern ECMAScript-compatible, embeddable, lightweight JavaScript engine for embedded system programmers. QuickJs supports modern JavaScript, but has no external dependencies and increases your embedded system bundle by only 210 KiB.
The popular Google V8 JavaScript engine isnt suitable for embedded programming since it weighs megabytes because of JIT-like performance enhancements. QuickJs doesnt implement JIT but runs JavaScript with only kilobyte-sized compiled code size.
## Lua — the Easiest General-Purpose Programming Language Ever Created
Most programmers think that Python is the easiest general-purpose programming language. Lua is not as popular as Python in the modern developer community, but its undoubtedly easier to learn and use than Python for any general-purpose programming requirement. Lua implements a minimal, productive general-purpose programming language with 22 keywords, 8 data types, and only one data structure.
[Lua](https://github.com/lua/lua) is a minimal language, but it offers a fully-featured standard library, a module system, and multi-paradigm programming. Look at the following simple [Git](https://levelup.gitconnected.com/git-commands-and-features-that-every-developer-should-know-a0abeec28cd2) Hook implemented in Lua:
```
#!/usr/bin/env lualocal commit_msg_file = arg[1]local msg = io.open(commit_msg_file):read()if msg:find("^#%d+: .") == nil then print("commit-msg: Incorrect commit message format.") os.exit(1)end
```
Lua is written in C without extra dependencies and weighs about ~200 KB when compiled, so embedding Lua for embedded system projects is easy.
Lua is designed as an extensible, minimal language and released under the MIT open-source license, so anyone can create custom programming languages by modifying the Lua language grammar and features.
For, example, the Roblox game development team created the [Luau](https://github.com/luau-lang/luau) language by improving performance factors and language syntax.
The following story explores the impressive Lua language features that you should know:
## FabricJs — A Library to Turn the HTML Canvas into an Interactive Graphics Editor
The modern web API specification often strives to offer standard, inbuilt APIs to let web developers write fast websites without using third-party dependencies. The standard HTML canvas API lets developers draw high-performance, dynamic, interactive 2D graphic elements on the web surface without using traditional DOM elements.
However, the standard canvas API is a low-level API, so web developers should write extra code for interactive graphic objects to build graphic editors, photo editors, painting programs, and other interactive graphics processing software.
The [FabricJs](https://github.com/fabricjs/fabric.js) open-source project implements a high-level library for HTML canvas API with pre-developed features like freehand drawing, painting brushes, shape objects, and image filters. FabricJs adds interactive features for each graphical object on the HTML canvas so, we can use it to build any web-based graphics editing software with less code.
Look at the following web-based simple photo editing app created with FabricJs and React:
![](https://miro.medium.com/v2/resize:fit:700/1*u6a2ztk5XaWJt6H6bbd5Dg.gif)
A simple photo editing app developed using FabricJs and React, a screen recording by the author
You can even use FabricJs to build an Adobe Photoshop or CorelDraw alternative!