Overview
Hi everyone 👋🏼
In this article, I'm going to look at seven OSS repository that you should know written in C, interesting projects that caught my attention and that I want to share.
Let's start 🤙🏼
1. LVGL
LVGL is the most popular open source embedded graphics library to create beautiful UIs for any MCU, MPU and display type. It's supported by industry leading vendors and projects like Arm, STM32, NXP, Espressif, Nuvoton, Arduino, RT-Thread, Zephyr, NuttX, Adafruit and many more.
Amazing and beautiful project! 😎
English | 中文 | Português do Brasil | 日本語 | עברית
Light and Versatile Graphics Library
Website | LVGL Pro Editor | Docs | Forum | Demos | Services
Table of Contents
Overview
Features
Platform Support
LVGL Pro Editor
Commercial Services
Integrating LVGL
Examples
Contributing
📒 Overview
LVGL is a free and open-source UI library that enables you to create graphical user interfaces for any MCUs and MPUs from any vendor on any platform.
Requirements: LVGL has no external dependencies, which makes it easy to compile for any modern target, from small MCUs to multi-core Linux-based MPUs with 3D support. For a simple UI, you need only ~100kB RAM, ~200–300kB flash, and a buffer size of 1/10 of the screen for rendering.
To get started, pick a ready-to-use VSCode, Eclipse, or any other project and try out LVGL on your PC. The LVGL UI code is fully platform-independent…
2. systemd
systemd is a suite of basic building blocks for a Linux system. It provides a system and service manager that runs as PID 1 and starts the rest of the system. 🤖
System and Service Manager
Details
Most documentation is available on systemd's web site.
Assorted, older, general information about systemd can be found in the systemd Wiki.
Information about build requirements is provided in the README file.
Consult our NEWS file for information about what's new in the most recent systemd versions.
Please see the Code Map for information about this repository's layout and content.
Please see the Hacking guide for information on how to hack on systemd and test your modifications.
Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.
When preparing patches for systemd, please follow our Coding Style Guidelines.
If you are looking for support, please contact our mailing list, join our IRC channel #systemd on libera.chat or Matrix channel
Stable branches with backported patches are available in the stable repo.
We have a…
3. DOOM Retro
Who doesn't know the successful DOOM video game series?
DOOM Retro is the classic, refined DOOM source port for Windows PC. It represents the game in all its dark and gritty, unapologetically pixelated glory. 👹
bradharding
/
doomretro
The classic, refined DOOM source port. For Windows PC.
DOOM Retro is the classic, refined DOOM source port for Windows PC. It represents how I like my DOOM to be today, in all its dark and gritty, unapologetically pixelated glory. I have strived to craft a unique and cohesive set of compelling features, while continuing to uphold my respect for that classic, nostalgic DOOM experience many of us, after all this time, still hold dear.
Open the DOOM Retro Wiki for more information.
DOOM Retro is Copyright © 2013–2026 by Brad Harding. All rights reserved. Coded with love in Western Sydney, Australia. DOOM Retro is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the license, or (at your option) any later version. DOOM Retro is distributed in the hope that it will be useful, but…
4. OBS Studio
OBS Studio needs no introduction: the famous screen recording and live streaming software is open source and written in C! 📹
obsproject
/
obs-studio
OBS Studio - Free and open source software for live streaming and screen recording
OBS Studio <https://obsproject.com>
What is OBS Studio?
OBS Studio is software designed for capturing, compositing, encoding, recording, and streaming video content, efficiently.
It's distributed under the GNU General Public License v2 (or any later version) - see the accompanying COPYING file for more details.
Quick Links
- Website: https://obsproject.com
- Help/Documentation/Guides: https://github.com/obsproject/obs-studio/wiki
- Forums: https://obsproject.com/forum/
- Build Instructions: https://github.com/obsproject/obs-studio/wiki/Install-Instructions
- Developer/API Documentation: https://obsproject.com/docs
- Donating/backing/sponsoring: https://obsproject.com/contribute
- Bug Tracker: https://github.com/obsproject/obs-studio/issues
Contributing
- If you would like to help fund or sponsor the project, you can do so via Patreon, OpenCollective, or PayPal. See our contribute page for more information.
- If you wish to contribute code to the project, please make sure to read the coding and commit guidelines https://github.com/obsproject/obs-studio/blob/master/CONTRIBUTING.rst
- Developer/API documentation can be found here: https://obsproject.com/docs
- If you wish to contribute translations, do not submit pull requests. Instead, please use Crowdin. For more information read this page: https://obsproject.com/wiki/How-To-Contribute-Translations-For-OBS
- Other ways to contribute are…
5. raylib
raylib is a simple and easy-to-use library to enjoy videogames programming.
It is highly inspired by Borland BGI graphics library and by XNA framework and it's especially well suited for prototyping, tooling, graphical applications, embedded systems and education. 🕹
raylib is a simple and easy-to-use library to enjoy videogames programming.
raylib is highly inspired by Borland BGI graphics lib and by XNA framework and it's especially well suited for prototyping, tooling, graphical applications, embedded systems and education.
NOTE for ADVENTURERS: raylib is a programming library to enjoy videogames programming; no fancy interface, no visual helpers, no debug button... just coding in the most pure spartan-programmers way.
Ready to learn? Jump to code examples!
features
- NO external dependencies, all required libraries are included into raylib
- Multiple platforms supported: Windows, Linux, MacOS, RPI, Android, HTML5... and more!
- Written in plain C code (C99) using PascalCase/camelCase notation
- Hardware accelerated with OpenGL: 1.1, 2.1, 3.3, 4.3, ES 2.0, ES 3.0
- Unique OpenGL abstraction layer (usable as standalone module): rlgl
- Multiple Fonts formats supported (TTF, OTF, FNT, BDF, sprite fonts)
- Multiple texture formats supported, including compressed formats (DXT, ETC, ASTC)
- Full 3D support…
6. Celluloid
Celluloid (formerly GNOME MPV) is a simple GTK+ frontend for mpv. It interacts with mpv via the client API exported by libmpv, allowing access to mpv's powerful playback capabilities.
It is an alternative of VLC. 🧨
celluloid-player
/
celluloid
A simple GTK+ frontend for mpv
Celluloid
Celluloid (formerly GNOME MPV) is a simple GTK+ frontend for mpv. Celluloid interacts with mpv via the client API exported by libmpv, allowing access to mpv's powerful playback capabilities.
Repository Mirror: https://codeberg.org/celluloid-player/celluloid
Dependencies
- appstream (build)
- pkg-config (build)
- gcc (build)
- glib >= 2.68
- gtk >= 4.16
- gdk-pixbuf >= 2.30
- libadwaita >= 1.8.0
- mpv >= 0.32
- epoxy
- lua (optional)
- youtube-dl (optional)
Installation
Packages
Ubuntu users can use this PPA to get more up-to-date versions of Celluloid.
Flatpak
Flatpak packages support multiple distributions and are sandboxed. Flatpak 0.9.5+ is recommended for best integration.
Stable releases are hosted on Flathub:
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
flatpak install flathub io.github.celluloid_player.Celluloid
Snap
Stable releases are hosted on Snapcraft:
sudo snap install celluloid
Source code
Run the following command in the source code directory to build and install:
meson setup build && cd build && ninja && sudo ninja install
Usage
Opening files
There…
7. finit
finit (Fast init for Linux) is an alternative to SysV init and systemd, originally reverse engineered from the EeePC. 🪛
finit-project
/
finit
Fast init for Linux. Cookies included
Finit is a fast, simple alternative to SysV init and systemd, designed for small and embedded Linux systems. It can also run on desktop and server systems, like finix.
Reverse engineered from the EeePC fastinit
"gaps filled with frog DNA …"
— Claudio Matsuoka
For detailed information, explore our extensive documentation
📚 http://finit-project.github.io
For working examples, see the 🚀 contrib/ section or these tutorials:
- 🛠️ Buildroot embedded Linux,
- 📦 Debian GNU/Linux,
- ⛰️ Alpine Linux, and
- 🌌 Void Linux
Note
Finit can run on various Linux distributions, but the bundled install scripts are examples only. They have been tested on amd64 (x86_64) systems with standard configurations.
For embedded systems, see these Buildroot-based examples: myLinux, Infix, or br2-finit-demo.
Conclusion
This list lists seven open source projects that are worth checking out, either to use them or even to contribute🖖
Happy coding!✨
Hi👋🏻
My name is Domenico, software developer passionate of Open Source, I write article about it for share my knowledge and experience.
Don't forget to visit my Linktree to discover my projects 🫰🏻
Linktree: https://linktr.ee/domenicotenace
Follow me on dev.to for other articles 👇🏻
If you like my content or want to support my work on GitHub, you can support me with a very small donation.
I would be grateful 🥹










Top comments (2)
Hi Domenico Tenace ,
Top, very nice and helpful !
Thanks for sharing.
Hi @jangelodev
Thanks for the feedback 🤗
It was a pleasure ✨