一个用C语言编写的高性能2D UI布局库,基于flex-box模型,单头文件、零依赖,支持Wasm,微秒级布局性能,提供渲染器无关的输出。
- v0.14
- 发布于
- 2025年6月6日
- 18,188
- 星标
- 1,016
- 下载
- 同步于
- 1 天前
最新版本
v0.142025年6月6日 09:16下载慢?可在上方随时切换镜像源
项目说明
项目概述
Clay(C Layout的缩写)是一个高性能的2D UI布局库,采用flex-box布局模型,能够实现复杂、响应式的UI布局,包括文本换行、滚动容器和宽高比缩放。它是一个单头文件库(约4800行代码),零依赖(不链接标准库),支持Wasm编译。Clay基于静态内存分配,无malloc/free操作,内存开销低(约3.5MB可容纳8192个布局元素)。
主要功能
- 微秒级布局性能:高性能的布局计算
- flex-box布局模型:支持复杂、响应式布局,包括文本换行、滚动容器和宽高比缩放
- 过渡动画API:轻松实现布局动画
- 单头文件:约4800行代码的clay.h,零依赖
- Wasm支持:编译为约15KB的.wasm文件,可在浏览器中运行
- 静态内存管理:基于arena的内存使用,无malloc/free,内存开销低
- 声明式语法:类似React的嵌套声明式语法
- 渲染器无关:输出排序后的渲染原语列表,可轻松在任意3D引擎中合成,甚至编译为HTML
适用人群
- 需要高性能UI布局的C/C++开发者
- 构建嵌入式UI、游戏UI或浏览器应用(通过Wasm)的开发者
- 希望减少依赖、追求轻量级UI布局方案的用户
快速上手
- 下载或克隆clay.h文件
- 在一个文件中定义
CLAY_IMPLEMENTATION后包含clay.h - 实现文本测量函数和错误处理函数
- 初始化Clay并配置内存arena
- 使用声明式语法构建UI布局
核心优势
- 单头文件、零依赖,易于集成
- 微秒级布局性能,适合高性能场景
- 支持Wasm,可在浏览器中运行
- 渲染器无关,可适配任意渲染后端
系统要求
- 操作系统:跨平台(C语言环境)
历史版本
排序