Advanced Developer Tooling for Linuxยฎ

Empowering developers with cutting-edge applications built for Linux. From comprehensive IDEs to innovative terminals and everything inbetween.

Builder IDE Debugger Interface Builder IDE Debugger Interface

About Christian Hergert

I'm passionate about creating applications that enhance the Linux development experience. For most of my career I've been dedicated to bringing professional grade tools to Linux.

If you have a question about custom development needs please get in touch!

For software defects I kindly request that you use the issue tracker so that others may help triage your issue.

Christian Hergert

Skills & Expertise

C/C++ & Assembly
GPU Rendering
Language Design
Performance Tuning
Remote Desktop
Virtualization
Compilers
Debuggers
Profilers
Data Visualization
GTK
Data Structures
Database Internals
Multimedia Playback
Platform Design
OSS Leadership

Builder: A Developer's Notebook

Learn about how Builder was created and the development process behind this comprehensive IDE.

๐Ÿ“– Download Book (PDF)

Applications

Professional-grade tools designed for modern Linux developers

Builder Icon

Builder

A comprehensive IDE with debugging, profiling, and rich source code editing features. Complete with intelligent completion and real-time diagnostics.

  • Advanced debugging tools
  • Integrated profiler
  • Intelligent code completion
  • Real-time diagnostics
  • Multi-language support
Sysprof Icon

Sysprof

A whole-system profiler for Linux systems including embedded platforms. Quickly identify and triage performance bottlenecks across your entire system.

  • System-wide profiling
  • Embedded system support
  • Performance bottleneck detection
  • Interactive flame graphs
  • Low-overhead monitoring
Ptyxis Icon

Ptyxis

A container-oriented terminal for Linux with seamless OCI container integration. Pre-installed on Fedora, Ubuntu, and RHEL for modern development workflows.

  • OCI container integration via Podman
  • Host system compatibility
  • Modern terminal features
  • Pre-installed on major distros
  • Seamless workflow integration
Text Editor Icon

Text Editor

The default Text Editor for GNOME. It's the pre-installed text editor for most Linux distributions including Fedora, Debian, Ubuntuยฎ, and Red Hat Enterprise Linuxยฎ.

  • Clean, modern interface
  • Syntax highlighting and spellcheck
  • Search and replace
  • Pre-installed on major distros
  • GNOME integration
D-Spy Icon

D-Spy

An inspector tool to introspect clients and objects on the session or system D-Bus. Call methods, read properties, and explore external buses like the accessibility bus.

  • D-Bus introspection and inspection
  • Session and system bus support
  • External bus compatibility
  • Method calling and property reading
  • Real-time object monitoring
Manuals Icon

Manuals

Read documentation for the GNOME platform with support for installing documentation from Flathub. Grouped by SDK to find documentation specific to your target platform with easy and quick search.

  • GNOME platform documentation
  • Flathub documentation installation
  • SDK-based organization
  • Fast and intuitive search
  • Platform-specific targeting
Schemes Icon

Schemes

Create and modify GtkSourceView style schemes for syntax highlighting. Design custom color themes for code editors and applications with an intuitive visual interface.

  • Visual style scheme editor
  • GtkSourceView 5.3+ compatibility
  • Real-time preview
  • Dark and light mode support
  • Export to standard formats

Software Libraries

Open source libraries designed to enhance C development and GTK applications

libdex

A library that provides Futures (promises) to C programming with support for await through the use of fibers. Cross-platform support for Linux, macOS, Windows, FreeBSD, Hurd, and Solaris.

  • Futures and promises for C
  • Async/await support via fibers
  • Cross-platform compatibility
  • Integrated io_uring support on Linux
  • Modern C development patterns

libspelling

Provides the needed bridge between enchant spellcheck libraries and the GTK toolkit so developers can quickly and easily add spellcheck facilities to their GTK applications.

  • Enchant spellcheck integration
  • GTK toolkit bridge
  • Easy spellcheck implementation
  • Developer-friendly API
  • Multiple programmiing language support

Foundry

A command-line tool and shared library that provides the fundamentals required to build IDEs. Comprehensive abstractions for debuggers, code completion, linters, build systems, and much more.

  • Debugger abstractions
  • Code completion & linters
  • Build system integration
  • Unit testing framework
  • Device & SDK management
  • Container support

LibMKS

A library providing abstractions to write GTK applications which interact with Qemu virtual machines. Features efficient DMA-BUF graphics transfer and multi-touch input support for smooth VM experiences.

  • Qemu virtual machine integration
  • DMA-BUF graphics transfer
  • Multi-touch input support
  • GTK application abstractions
  • Smooth user experience
  • Efficient resource utilization

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. Focus on your application, not the data storage.

  • SQLite data mapper for GObject
  • Dynamic object serialization
  • Well-performing indexes
  • Automatic schema migration
  • Collection support
  • Allows for custom SQL

jsonrpc-glib

A GLib-based library for JSON-RPC communication with both synchronous and asynchronous support. Features dual serialization with JSON and GVariant formats for optimal performance.

  • JSON-RPC 2.0 protocol implementation
  • Async/sync operations
  • GVariant serialization support
  • Client and server components
  • GIO stream integration

libpanel

A GTK 4 and libadwaita-based library for creating IDE-like applications with dockable panels, workspaces, and modern GNOME integration. Designed for complex desktop applications.

  • IDE-like UI components
  • Dockable panel system
  • Workspace management
  • Session persistence
  • Modern GTK 4 integration

template-glib

A text templating engine for generating text-based output from templates and user-defined state. Features GObject Introspection support and works from any GObject-introspectable language.

  • Full-featured templating engine
  • GObject integration
  • Multi-language support
  • Expression parser
  • Template includes
Builder Icon

Builder

Comprehensive GNOME IDE

Builder is a powerful integrated development environment designed specifically for GNOME. It provides everything you need to develop, debug, and profile applications with intelligent code completion, real-time diagnostics, and seamless integration with the GNOME platform.

Builder IDE Debugger Interface Builder IDE Debugger Interface
๐Ÿ›

Advanced Debugging

Comprehensive debugging tools with breakpoints, variable inspection, and call stack analysis.

๐Ÿ“Š

Integrated Profiler

Built-in profiling capabilities to identify performance bottlenecks and optimize your code.

๐Ÿง 

Intelligent Completion

Smart code completion with context-aware suggestions and real-time error detection.

๐ŸŒ

Multi-Language Support

Support for C, C++, Python, JavaScript, Vala, and many other programming languages.

Ptyxis Icon

Ptyxis

Container-Oriented Terminal

Ptyxis is a modern terminal emulator designed for container-based development workflows. With seamless OCI container integration via Podman, it provides a native terminal experience for containerized applications and development environments.

Ptyxis Application Interface Ptyxis Application Interface
๐Ÿณ

OCI Integration

Seamless integration with OCI containers via Podman for modern containerized development.

โšก

Modern Features

Advanced terminal features including tabs, overview at a glance, and a broad range of pre-installed themes.

๐Ÿ”—

Workflow Integration

Pre-installed on major distributions and designed for seamless integration with development workflows.

Sysprof Icon

Sysprof

System-Wide Performance Profiler

Sysprof is a comprehensive profiling tool for Linux systems, including embedded platforms. It helps you identify performance bottlenecks across your entire system with low-overhead monitoring and interactive visualization tools.

Sysprof Application Interface Sysprof Application Interface
๐Ÿ“ˆ

System-Wide Profiling

Monitor CPU usage, memory allocation, and IO operations across all processes and threads.

๐Ÿ”ฅ

Interactive Flame Graphs

Visualize call stacks and performance data with interactive flame graphs for easy analysis.

๐Ÿ”—

Platform Integration

The GNOME Shell compositor, Mesa 3D, Pango, WebKit, GLib, and GTK all provide rich Sysprof integration.

โšก

Low Overhead

Minimal performance impact during profiling to ensure accurate measurements of your applications.

๐Ÿ“ก

D-Bus Message Tracking

Capture and analyze D-Bus communication patterns to trace the root cause of complex system issues and service interactions.

Text Editor Icon

Text Editor

Default GNOME Text Editor

The default text editor for GNOME, pre-installed on most Linux distributions including Fedora, Debian, Ubuntu, and Red Hat Enterprise Linux. It provides a clean, modern interface with essential editing features and seamless GNOME integration.

Text Editor Application Interface Text Editor Application Interface
โœจ

Clean Interface

Modern, distraction-free interface designed for focused writing and coding sessions.

๐ŸŽจ

Syntax Highlighting

Support for syntax highlighting and spellcheck across multiple programming languages and file types.

๐Ÿ”

Search & Replace

Powerful search and replace functionality with regular expression support for advanced text manipulation.

๐Ÿ”—

GNOME Integration

Deep integration with GNOME desktop including native theming, file associations, and workflow optimization.

Manuals Icon

Manuals

GNOME Platform Documentation Hub

Manuals is your comprehensive documentation companion for the GNOME platform. Access developer documentation, API references, and guides all in one place, organized by SDK version for precise targeting of your development needs.

Manuals Application Interface Manuals Application Interface
๐Ÿ“š

Complete Documentation

Access full GNOME platform documentation including GTK, GLib, GObject, and all major libraries.

๐Ÿ”

Intelligent Search

Find exactly what you need with fast, context-aware search across all documentation sources.

๐Ÿ“ฆ

SDK Organization

Documentation grouped by SDK version ensures you're always referencing the right API for your target platform.

โšก

Offline Access

Download and access documentation offline, perfect for development environments without internet access.

D-Spy Icon

D-Spy

D-Bus Inspector & Debugging Tool

D-Spy is a powerful debugging and inspection tool for the D-Bus inter-process communication system. Whether you're developing GNOME applications, system services, or debugging complex interactions, D-Spy provides the visibility you need into the D-Bus ecosystem.

D-Spy Application Interface D-Spy Application Interface
๐Ÿ”

Bus Introspection

Explore all available services, objects, and interfaces on session and system buses with real-time updates.

โšก

Method Calling

Execute D-Bus methods with custom parameters and see immediate results with detailed error reporting.

๐Ÿ“Š

Property Monitoring

Monitor property changes in real-time and track object state transitions across your system.

๐ŸŒ

External Bus Support

Connect to accessibility buses and other external D-Bus instances for comprehensive system debugging.

Schemes Icon

Schemes

GtkSourceView Style Scheme Designer

Schemes is a powerful visual editor for creating and modifying GtkSourceView style schemes used for syntax highlighting in code editors and text applications. Whether you're customizing existing themes or creating entirely new color schemes, Schemes provides an intuitive interface to design the perfect visual experience for your development environment.

Schemes Application Interface Schemes Application Interface
๐ŸŽจ

Visual Editor

Intuitive visual interface for editing style schemes with real-time preview of your changes.

๐Ÿ”ง

GtkSourceView Integration

Full compatibility with GtkSourceView 5.3+ and support for the latest syntax highlighting features.

๐Ÿ‘๏ธ

Live Preview

See your changes instantly with live preview across multiple programming languages and file types.

๐ŸŒ“

Theme Support

Create both dark and light mode variants of your style schemes for complete theme coverage.

๐Ÿ“

Standard Formats

Export to standard GtkSourceView XML format for use in Builder, Text Editor, and other applications.

๐ŸŽฏ

Precise Control

Fine-tune every aspect of syntax highlighting including colors, fonts, and text decorations.

libdex

Futures and Promises for C

libdex brings modern asynchronous programming patterns to C with Futures (promises) and await support through fibers. This library enables developers to write clean, maintainable asynchronous code in C while maintaining cross-platform compatibility across Linux, macOS, Windows, FreeBSD, Hurd, and Solaris.

โšก

Futures & Promises

Implement modern asynchronous programming patterns in C with full promise/future support.

๐Ÿ”„

Async/Await

Write clean, readable asynchronous code using await syntax powered by lightweight fibers.

๐ŸŒ

Cross-Platform

Support for Linux, macOS, Windows, FreeBSD, Hurd, and Solaris with consistent API.

โš™๏ธ

Lightweight

Minimal overhead and memory footprint designed for performance-critical applications.

๐Ÿ”ง

GIO Async Abstractions

Comes with abstractions for common GIO async APIs making it quick and simple to enhance legacy code to be more concurrent.

libspelling

GTK Spellcheck Integration

libspelling provides a seamless bridge between the enchant spellcheck libraries and the GTK toolkit, making it incredibly easy for developers to add comprehensive spellcheck capabilities to their GTK applications. With support for multiple languages and dictionaries, it's the perfect solution for text-heavy applications.

๐Ÿ”ค

Enchant Integration

Seamless integration with enchant spellcheck libraries for robust spellcheck capabilities.

๐ŸŽจ

GTK Bridge

Native GTK integration with proper theming and user interface consistency.

๐ŸŒ

Multi-Language

Support for multiple languages and dictionaries with automatic language detection.

โšก

Easy Integration

Simple API that makes adding spellcheck to GTK applications quick and straightforward.

Foundry

IDE Development Framework

Foundry is a comprehensive command-line tool and shared library that provides all the fundamental building blocks required to construct modern integrated development environments. From debugger abstractions to language servers, Foundry offers a complete toolkit for IDE developers.

๐Ÿ›

Debugger Abstractions

Complete debugger integration with breakpoints, variable inspection, and call stack analysis.

๐Ÿง 

Code Completion & Linters

Intelligent code completion, real-time diagnostics, and comprehensive linting support.

๐Ÿ”จ

Build System Integration

Seamless integration with various build systems and compilation toolchains.

๐Ÿงช

Unit Testing Framework

Built-in unit testing capabilities with test discovery and execution management.

๐Ÿ“ฑ

Device & SDK Management

Comprehensive device management and SDK handling for cross-platform development.

๐Ÿณ

Container Support

Transparent container integration for modern development workflows and deployment.

๐Ÿ“š

Documentation Indexing

Advanced documentation indexing and search capabilities for comprehensive help systems.

๐Ÿ“ฆ

Dependency Management

Sophisticated dependency resolution and package management for complex projects.

โœ๏ธ

Text Editing

Rich text editing capabilities with syntax highlighting and advanced editing features.

๐Ÿ”€

Version Control

Integrated version control management with support for Git and other VCS systems.

๐Ÿ”

Symbol Resolving

Advanced symbol resolution and navigation for complex codebases and large projects.

๐ŸŒ

Language Servers

Language Server Protocol support for multi-language development environments.

๐ŸŽจ

GTK Integration

The FoundryGtk library provides a bridge between Foundry and GTK for common needs like text editing.

โœจ

Libadwaita Integration

For GNOME applications, FoundryAdw is provided to bridge Foundry with GNOME design expectations.

LibMKS

Mouse, Keyboard, Screen for GTK & Qemu

LibMKS provides essential abstractions for writing GTK applications that interact with Qemu virtual machines. With efficient DMA-BUF graphics transfer and multi-touch input support, it delivers a smooth and responsive virtual machine experience for both developers and end users.

๐Ÿ–ฑ๏ธ

Mouse Integration

Seamless mouse input handling with precise cursor tracking and smooth movement across virtual machine boundaries.

โŒจ๏ธ

Keyboard Support

Complete keyboard input abstraction with key mapping, modifiers, and special key handling for virtual machines.

๐Ÿ–ฅ๏ธ

Screen Management

Advanced screen handling with resolution management, multi-monitor support, and display configuration.

โšก

DMA-BUF Graphics

Efficient graphics transfer using DMA-BUF for hardware-accelerated rendering and smooth visual performance.

๐Ÿ‘†

Multi-Touch Input

Support for multi-touch gestures and input devices to enhance the virtual machine user experience.

๐ŸŽจ

GTK Integration

Native GTK application integration with first-class support for GPU-based rendering.

๐Ÿ”ง

Qemu Integration

Deep integration with Qemu virtual machines for optimal performance and feature compatibility.

โš™๏ธ

Resource Efficiency

Optimized resource utilization to minimize overhead and maximize virtual machine performance.

GOM

GObject Data Mapper for SQLite

GOM is a powerful GObject Data Mapper that provides a semi-transparent wrapper around SQLite, enabling dynamic reading and writing of GObjects and collections of GObjects. Focus on your application logic while GOM handles the complexities of data persistence, schema management, and object-relational mapping.

๐Ÿ—„๏ธ

SQLite Integration

Seamless integration with SQLite databases with automatic schema creation and management for your GObject classes.

๐Ÿ”„

Dynamic Serialization

Automatic serialization and deserialization of GObject properties to and from database columns with type safety.

โšก

High Performance

Well-performing indexes and optimized queries ensure your application remains responsive even with large datasets.

๐Ÿ”ง

Schema Migration

Automatic schema migration support with versioning to handle database schema changes as your application evolves.

๐Ÿ“ฆ

Collection Support

Built-in support for collections of GObjects with efficient querying and relationship management capabilities.

๐Ÿ”

Advanced Filtering

Comprehensive filtering system with support for complex queries, joins, and custom SQL when needed.

๐ŸŽฏ

Type Safety

Full GObject type system integration ensuring compile-time type checking and runtime type safety.

๐Ÿ”—

Relationship Mapping

Support for one-to-many and many-to-many relationships between GObject classes with automatic foreign key handling.

๐Ÿ“Š

Query Builder

Intuitive query builder API for constructing complex database queries without writing raw SQL.

โš™๏ธ

Custom SQL Support

When you need maximum control, GOM allows you to write custom SQL queries while maintaining object mapping.

๐Ÿ”„

Async Operations

Full support for asynchronous database operations to keep your UI responsive during data operations.

jsonrpc-glib

JSON-RPC Communication Library

jsonrpc-glib is a comprehensive GLib-based library for JSON-RPC communication with both synchronous and asynchronous support. It provides full JSON-RPC 2.0 protocol implementation with the added benefit of GVariant serialization for local communication, making it perfect for inter-process communication and microservice architectures.

๐Ÿ“ก

JSON-RPC 2.0 Protocol

Implementation of the JSON-RPC 2.0 specification with client and server components for robust communication.

โšก

Async/Sync Operations

Both blocking and non-blocking API calls with proper GIO integration for flexible application architectures.

๐Ÿ”ง

Dual Serialization

Support for both JSON and GVariant serialization formats, with GVariant optimized for local communication.

๐Ÿ›ก๏ธ

Error Handling

Comprehensive error handling with standard JSON-RPC error codes and detailed error reporting.

๐ŸŒŠ

Stream-based I/O

Built on GIOStream for flexible I/O operations and seamless integration with GLib's async infrastructure.

๐Ÿ”—

GObject Integration

Full GObject Introspection support for use from any GObject-introspectable language.

libpanel

IDE-like Application Framework

libpanel is a comprehensive GTK 4 and libadwaita-based library designed for creating IDE-like applications with dockable panels, workspaces, and modern GNOME integration. It provides all the essential UI components needed to build complex desktop applications with professional-grade user interfaces.

๐ŸชŸ

Dockable Panels

Complete dockable panel system with resizable, movable panels that can be arranged according to user preferences.

๐Ÿข

Workspace Management

Multi-workspace support with focus management, allowing users to organize their work across different contexts.

๐Ÿ’พ

Session Persistence

Save and restore application state, layouts, and user preferences across application sessions.

๐ŸŽจ

Modern GTK 4

Built on latest GTK 4 and libadwaita for modern GNOME integration and contemporary design patterns.

๐Ÿ“‹

Tabbed Interfaces

Advanced tabbed document frames with drag-and-drop support and intelligent tab management.

๐Ÿ”ง

Extensible Architecture

Plugin-friendly design that makes it easy to add new features and customize the application interface.

๐Ÿ“Š

Grid Layout System

Flexible grid-based layout system for organizing content and panels in complex arrangements.

๐ŸŽฏ

IDE Components

Specialized widgets for IDE features including status bars, progress indicators, and specialized controls.

template-glib

Text Templating Engine

template-glib is a powerful text templating engine for generating text-based output from templates and user-defined state. With full GObject Introspection support, it works seamlessly from any GObject-introspectable language, making it perfect for code generation, documentation, and dynamic content creation.

๐Ÿ“

Template Engine

Full-featured templating with conditionals, loops, expressions, and includes for complex text generation scenarios.

๐Ÿ”—

GObject Integration

Direct access to GObject properties and methods via GObject Introspection for seamless data binding.

๐ŸŒ

Multi-Language Support

Works from any GObject-introspectable language including C, Vala, Python, JavaScript, and more.

๐Ÿงฎ

Expression Parser

Formal grammar-based expression evaluation with arithmetic, logical, and string operations.

๐Ÿ“„

Template Includes

Support for including other templates with secure template loading and path management.

๐ŸŽฏ

Scope Management

Hierarchical variable scoping system with inheritance and flexible state management.

Notable Open Source Contributions

Significant contributions to major open source projects that have impacted the broader developer community.

GTK

GTK (GNOME Toolkit)

Core Framework

Significant contributions to the GTK toolkit, including performance improvements, GPU rendering facilities, macOS support, text undo stack, widgets, accessibility, and more.

Focus Areas: Performance, GPU, Text
GLib

GLib

Core Library

Core contributions to GLib, the foundational library for GNOME applications, including data structure optimizations, serialization improvements, API design, and deep knowledge of time and calendaring systems.

Focus Areas: Data Structures, Threading, Performance
MDB

MongoDB

Foundational Database

Core contributions to the MongoDB eco-system as the author of the core serialization library libbson and the driver library libmongoc.

Created the core counter design used to record statistics in the database engine and access them remotely over shared memory. This solved some longstanding performance issues around status monitoring.

Focus Areas: Data Structures, Threading, Performance, API design
GNOME

Maintainership

GNOME Module Maintenance

Maintainer of key GNOME development library libpeas, a versatile plugin engine supporting plugins in C, C++, Rust, Vala, Lua, Python, and JavaScript.

Also maintainer of GtkSourceView, a powerful code editing widget with syntax highlighting for hundreds of languages, auto-completion, hover tooltips, search, snippets, and auto-indentation.

Focus Areas: Language Runtimes, Plugins, Code Editing

Work in Progress

Projects currently under development. These are experimental and not ready for production use.

Drafting

A framework UI designer framework for GTK, enabling rapid prototyping and design of user interfaces with modern design tools and intuitive workflows.

In Development

libirc-glib

An IRC v3 library implementation for GLib, providing modern IRC client capabilities with support for the latest IRC protocol features and enhanced security.

In Development

Codesearch

An implementation of trigram search similar to Google Code Search. Allows for indexing a project and quickly finding files/lines that match a search query by only looking at files which have known trigram matches.

In Development

Deviced

A daemon that can run on devices to allow remote development. Applications use libdeviced to connect to devices and manage SDKs, run in-development applications, and debug remotely. Works with Builder for remote device tooling.

In Development

Bonsai

A daemon and shared-library for providing and consuming personal cloud-like services. Designed for GNOME desktop users with multiple devices who want their content kept in sync. Includes file storage and plans for mail, calendar, photos, and more.

In Development

mi2-glib

An implementation of the mi2 protocol for GDB, providing a modern interface for debugging applications with enhanced capabilities and better integration with development tools.

In Development