# SimulationBrowser **Repository Path**: QQXQQ/SimulationBrowser ## Basic Information - **Project Name**: SimulationBrowser - **Description**: 实现一个简单的浏览器,包括页面下载、HTML解析、CSS解析、布局、渲染、浏览器UI - **Primary Language**: Go - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-20 - **Last Updated**: 2026-02-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: Go语言 ## README # 简单浏览器实现 涵盖页面下载、HTML/CSS 解析、布局计算、渲染和基础 UI 交互功能。 ## 功能特性 - **网络请求**:支持 HTTP GET/POST 请求,可自定义请求头 - **HTML 解析**:完整的 DOM 树构建,支持元素、文本、注释节点 - **CSS 解析**:CSS 规则选择器和声明项解析,支持内联样式 - **布局引擎**:块级元素、行内元素、列表项的自动布局计算 - **渲染引擎**: - 2D 绘图上下文,支持路径、文本、图像渲染 - 贝塞尔曲线和几何图形绘制 - 颜色处理和字体渲染 - **历史管理**:浏览历史记录,支持前进/后退 - **调试功能**:DOM 树可视化、性能分析、性能剖析器 - **UI 组件**: - 窗口、框架、按钮、输入框、标签 - 画布控件(用于渲染页面) - 树形控件(用于调试器) - 滚动条、上下文菜单 - 事件处理(鼠标点击、滚动、键盘导航) ## 项目结构 ``` Aix/ ├── assets/ # 资源文件(图标、字体) ├── browser/ # 浏览器核心实现 │ └── structs/ # 浏览器各模块结构 ├── common/ # 公共工具(Base64、缓存、流处理) ├── filesystem/ # 文件系统(缓存、资源加载) ├── layout/ # 布局引擎 ├── network/ # 网络请求模块 ├── profiler/ # 性能分析模块 ├── renderer/ # 渲染引擎 │ └── structs/ # 渲染相关结构 ├── ui/ # UI 组件库 │ └── structs/ # UI 控件结构 ├── settings.json # 配置文件 ├── main_test.go # 测试文件 ├── go.mod # Go 模块定义 └── LICENSE # 许可证 ``` ## 快速开始 ### 环境要求 - Go 1.20+ - GLFW 3.x ### 安装依赖 ```bash go mod tidy ``` ### 运行程序 ```bash go run main.go ``` ## 使用说明 1. 在地址栏输入 URL 并按回车访问网页 2. 使用工具栏按钮进行刷新、前进、后退操作 3. 滚动页面查看内容 4. 右键点击打开上下文菜单 ## 依赖项 - **github.com/go-gl/glfw/v3.3/glfw**:窗口和输入管理 - **github.com/go-gl/mathgl/mgl64**:数学运算(矩阵、向量) - **golang.org/x/image**:图像处理 - **golang.org/x/net**:网络功能 - **github.com/sqwk/feeds**:Feed 解析 ## 许可证 本项目遵循 MIT 许可证。