Skip to content

CestlavieBitOS/Bit-HCI

Repository files navigation

Bit HCI - 统一人机交互基础设施

版本:v0.0.1
定位:BitOS 统一人机交互基础设施与先进 UI 框架

🎯 核心定位

Bit HCI 是一个基于 C++Vulkan 构建的 通用全场景人机交互开发框架,配合自研的 BitUI 声明式 UI 框架,旨在解决当前界面开发工具链的碎片化问题。

项目组成

  • Bit HCI:整体人机交互基础设施(类比 Apple 的 Cocoa/UIKit 框架)
  • Bit:未来规划的系统级编程语言(类比 Swift)
  • BitUI:声明式 UI 框架,Bit HCI 的一部分(类比 SwiftUI)
  • 关系:就像 Swift 和 SwiftUI 的关系,Bit 是通用语言,BitUI 是专注于界面开发的框架

核心特性

  • 统一范式:一套代码适配 CLI、GUI、Web 多种交互形态
  • 声明式语法:采用响应式信号 + 编译期静态优化的先进 UI 框架
  • 极致性能:基于 Vulkan 的高性能渲染,编译期优化最大化
  • 完全可控:C++ 底层实现,零依赖运行时,绝对性能控制
  • 面向未来:为 BitOS 深度集成设计,逐步迁移至自研 Bit 语言

技术愿景

  • 短期:用最少语法表达状态与交互,编译期优化性能
  • 中期:支持多端统一范式(CLI / GUI / WEB)
  • 长期:成为 BitOS 核心 UI 层,实现语言→框架→系统全栈自主可控

核心设计

  • 声明式 UI 语法与组件模型:以数据为源,界面为映射。
  • 局部响应式信号:以最小变更范围驱动视图更新,避免全局无差别刷新。
  • 编译期静态优化:跨越指令提升、死代码移除、样式折叠、事件下沉与去抖、静态切片等。
  • 最小运行时:按需引入、无框架绑定、可渐进集成。
  • 长期类型路线:基于 TypeScript 的类型系统与自研类型扩展。

目录结构

native/(测试窗口与运行容器)

native/ 目前作为一个"原生壳/测试窗口",用于:

  • 在 Windows 上创建测试窗口(Win32),初始化 Vulkan 实例与表面;
  • 驱动最小渲染循环,逐步接入 BitUI 框架的运行时与渲染;

后续会将其完善为“完整运行容器”:

  • 增加交换链、图像视图、RenderPass/Framebuffer;
  • 命令池/命令缓冲与提交/呈现;
  • 将编译产物(IR/布局/样式/事件)装载并渲染,形成所见即所得的验证环境。

快速开始

1. 构建项目(推荐)⭐

# 一键完整构建(清理 + 配置 + 构建)
scripts\rebuild.bat

# 或分步构建
scripts\configure.bat    # 配置 CMake
scripts\build.bat        # 构建所有组件

详细说明构建快速指南

2. 运行组件

# 进入输出目录
cd build\bin

# 运行任意组件(选择以下之一)
.\bitui_native.exe .\triangle.dll
.\bitui_native.exe .\button.dll
.\bitui_native.exe .\checkbox.dll
# ... 共 15 个组件可选

3. 编译器使用(可选)

详细使用指南请查看 BitUI 编译器 README

# 编译 BitUI 代码为 LLVM IR
cd compiler/build/Release
./bitui.exe -o output.ll -f ir ../../examples/hello.bitui

# 查看生成的 LLVM IR
cat output.ll

4. 文档导航

5. 开发环境

  • Visual Studio 2022 - 推荐(已测试)
  • CMake 3.24+ - 必需
  • Vulkan SDK - 必需
  • LLVM - 编译器开发需要
  • VSCode/Cursor 支持(计划中)

路线图(阶段性)

  1. 语法草案与最小可运行 demo(examples/counter
  2. 编译管线雏形:解析 -> IR -> 优化 -> 生成
  3. 信号系统与渐进切换策略
  4. 运行时适配与跨平台接口

贡献

欢迎通过 issue/RFC 参与设计讨论,或提交 PR 完善示例、文档与实现。

许可

本项目使用 MIT 许可。

开发进度(滚动更新)

更多详情见:docs/PROGRESS.md

更新时间:2025-10-12

About

Bit HCI:声明式语法 + 局部响应式信号 + 编译期静态性优化的先进 UI 语言

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published