An open API service indexing awesome lists of open source software.

https://github.com/alternative-intelligence-cp/ngui

A 100% native GUI library for Nitpick. Built for maximum safety without FFI compromises, scaling from raylib-like simplicity to full OpenGL/Vulkan support.
https://github.com/alternative-intelligence-cp/ngui

gui memory-safety native-gui nitpick opengl raylib sdl2 vulkan

Last synced: about 12 hours ago
JSON representation

A 100% native GUI library for Nitpick. Built for maximum safety without FFI compromises, scaling from raylib-like simplicity to full OpenGL/Vulkan support.

Awesome Lists containing this project

README

          

# NGUI — Nitpick Native GUI Library

**NGUI** is a 100% native GUI library for the Nitpick programming language.

The primary goal of NGUI is to provide developers with a powerful, fast, and feature-rich graphics and user interface framework without ever having to compromise on the safety and formal verification guarantees of Nitpick. By being 100% native, we completely bypass the FFI (Foreign Function Interface) gateway, ensuring that memory safety and error propagation hold true from the application logic all the way down to the pixel rendering.

**NO C/C++ code is allowed in this repository.**

## Roadmap

- **Phase 1: Raylib-style Simplicity**
Initial focus is on creating a straightforward, easy-to-use API similar to `raylib`, making it simple to open a window, draw shapes, handle input, and render text.
- **Phase 2: SDL2-level Features**
Expanding into more comprehensive windowing, event handling, audio, and hardware-accelerated 2D features.
- **Phase 3: Advanced Graphics APIs**
Full support for modern rendering backends such as OpenGL and Vulkan for maximum performance and 3D capabilities.

## Current Features

- **Rich Text Support:** Advanced text formatting with `RichTextWidget` and `TextSpan` providing independent styling (bold, italic, colors).
- **Gestures & Interaction:** Complete gesture recognition system (Tap, Pan, Swipe) built on a modular `GestureRecognizer` trait.
- **Drag & Drop:** Robust drag-and-drop architecture using `DragDropHook` for handling both internal UI drags and external OS file drops.
- **Interactive UI:** Input handling, state management, and declarative components (Buttons, Input Fields).
- **Layout Engine:** Flexbox-like layout engine supporting advanced alignment and wrapping constraints.
- **Hardware Acceleration:** Native GPU backend interface (in progress).
- **Resource Management:** Automatic GC-free lifecycle hooks for precise memory cleanup via `LifecycleHook`.

## Setup & Building

*Instructions coming soon.*

## License

See the `LICENSE` file for more details.