Apps for Linux Developers

We make great tools to enable developers to make great applications!

We proudly make tools for the GNOME® platform.

Applications

Builder IDE

Sysprof Profiler

Ptyxis Terminal

Manuals

D-Spy

Schemes

Text Editor

Libraries

libdex

The libdex library enables developers to write Future-based programs with async and await in any language supporting GObject Introspection. Futures may be chained or grouped together to simplify complex decision trees.

It uses leading technologies on Linux such as io_uring to power efficient work-stealing thread-pools.

Optionally, developers may use Fibers to write synchronous-looking code in C that is asynchronous in nature.

Linux, FreeBSD, macOS, Windows, Hurd, and Solaris are supported.

libpanel

The libpanel library provides infrastructure for writing large GTK-based applications such as an IDE.

Convenient widgetry such as panels, grids, pages, and draggable panes allows creating powerful-yet-beautiful applications like Builder.

It also contains machinery to simplify usage of GAction, an essential part of modern GTK development.

libmks

Libmks provides a Mouse, Keyboard and Screen for interacting with virtual machines. Currently Qemu is supported.

Effort is taken to draw efficiently to reduce overhead from the virtual machine all the way through a GTK 4 application using this library.

Future work will focus on providing DMA-BUF modifiers and explicit-sync from Virtual Machine through the host.

libspelling

Libspelling provides a spellcheck engine for GTK 4-based applications.

Use this library to get those lovely squiggles in your GtkSourceView-based application.

jsonrpc-glib

The JSONRPC-GLib library provides an implementation of the JSONRPC protocol on top of GIOStream using GVariant as the data type for messages.

Using GVariant in the API allows the protocol to automatically upgrade the connection to using GVariant directly instead of JSON when both sides use JSONRPC-GLib for reduced parsing overhead. Otherwise, JSON-GLib is used to serialize messages in the JSON format.

template-glib

Template-GLib provides a robust templating language for creating text-based content based on application state.

The scripting language can call into GObject Introspection providing convenient by-directional integration for your application.

Builder uses this for project templates and evaluating scripts in keyboard shortcuts!

GOM

GOM is the GObject Data Mapper. It provides a semi-transparent wrapper around SQLite which can dynamically read and write GObjects and collections of GObjects.

Use this library when you want to have data stored locally with well-performing indexes. Focus on your application, not the data storage.

libpeas

PEAS has been part of the GNOME project for many years and originated out of the Gedit project. Builder uses it extensively and now we maintain the library for GNOME.

The library supports loading plug-ins from a number of languages including C, Rust, Vala, Python, and Lua. Most recently, we added support for JavaScript via GJS and SpiderMonkey.

Utilities & Daemons

deviced

The deviced daemon allows remote connectivity to a device for development.

Use this to connect Builder to a phone or tablet for on-device development. Run and debug on the remote device!

Builder can automatically deliver SDKs and applications to the device to run.

Communication happens over JSONRPC over TLS-encrypted stream.

Bonsai

Bonsai is a prototype around local-first development. It provides a series of libraries and utilities to pair devices together to create a personal, online-or-offline, cloud.

A DAO library is provided so that you can write database-oriented applications which dynamically sync to other peers.

Use the file-system abstraction to store and merge files across multiple machines. Keep a local copy of content when you hit the road!

Communication between devices happens over TLS-encrypted D-Bus services making it easy to write new services and tools.

Connect with Us!

You can follow our work on our blog to learn about new features and applications. Even better add us to your RSS feed-reader!

Additionally you can find us on IRC at libera.chat/#gnome-hackers.

Get our Book!

Learn about how Builder was created and how you can contribute new features to this container-native IDE.

Read the Book!