We make great tools to enable developers to make great applications!
We proudly make tools for the GNOME® platform.
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.
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 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 provides a spellcheck engine for GTK 4-based applications.
Use this library to get those lovely squiggles in your GtkSourceView-based application.
Internally, libspelling is built with a custom data structure combining a B+Tree and a PieceTable for extremely low-overhead operations. Word breaking and checking is performed off the main thread to help ensure your application stays fast and smooth.
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 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 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.
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.
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 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.
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.
Learn about how Builder was created and how you can contribute new features to this container-native IDE.
Read the Book!