找到 9 篇与 GVP 相关的结果
-
openprint {card-default label="📦 项目信息"} 🔧 项目名称:openprint 💻 开发语言:TypeScript ⭐ Star数:273 | 🍴 Fork数:92 📜 开源协议:AGPL-3.0 🔗 项目地址:https://gitee.com/haiming236/openprint {/card-default} 项目介绍 OpenPrint是一款开源、零后端依赖的 Web 打印模板可视化设计器。它让用户通过拖拽即可设计快递面单、发票、标签、报表等打印模板,支持 AI 一句话生成、云打印、C++ 桌面客户端静默打印,3 分钟即可对接 ERP 系统。 项目详情 项目截图 OpenPrint 开源 Web 打印设计器 · AI 驱动 · 框架无关 · 跨平台 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 功能特性 · 快速开始 · AI 助手 · 架构 · 部署 · FAQ 🚀 诚邀开发者加入 — 我们欢迎全球开发者加入 OpenPrint 开源社区,共同参与产品研发,贡献代码、提交 Issue 或建议,一起打造更优秀的打印解决方案! OpenPrint 是一款开源、零后端依赖的 Web 打印模板可视化设计器。它让用户通过拖拽即可设计快递面单、发票、标签、报表等打印模板,支持 AI 一句话生成、云打印、C++ 桌面客户端静默打印,3 分钟即可对接 ERP 系统。 纯前端架构,无需服务器,无需数据库,一个浏览器即可运行。 框架无关设计 — 核心渲染引擎与 UI 层完全解耦,设计器基于 Vue 3 + Naive UI 构建,渲染引擎使用纯 TypeScript 实现,可无缝接入 React、Vue、Angular、原生 JS 等任意技术栈。 设计器界面 所见即所得的打印模板设计器,拖拽控件、实时预览 一键导入 · 百张秒打 把 Excel 流水数据直接导入设计器,自动映射字段、自动生成流水号,批量打印差异化的货物标签、资产标签、流水线标签。 ✓Excel 数据直联 — 上传表格自动识别列,字段一键映射到标签 ✓流水号自动编排 — 支持"分类-年份-序号"自定义规则,如 ZC-2026-0158 ✓一行一标签 — 每行数据生成一张独立标签,99 行批量输出 99 张 ✓逐条预览校验 — 第 1/99 行分页预览,批量前逐条检查,避免打错 ✓打印实时监控 — 进度条 + 成功/失败统计 + 耗时均速,全程可视可控 ✓多标签场景 — 货物 SKU 标、资产标识、流水线 SN 码、仓储码,一屏搞定 流水标签界面 目录 核心亮点 功能特性 快速开始 AI 助手 技术架构 项目结构 部署 桌面客户端 ERP 对接 FAQ 贡献指南 许可证 核心亮点 🔌 框架无关,引擎与 UI 解耦 OpenPrint 采用引擎层与 UI 层分离的架构设计: 渲染引擎(@openprint/engine)— 纯 TypeScript 实现,零框架依赖,负责模板解析、数据绑定、分页排版、HTML/PDF/SVG 渲染导出 设计器 UI(openprint26)— 基于 Vue 3 + Naive UI 构建可视化拖拽设计器 无论你的项目用 React、Vue、Angular 还是 原生 JS,都能轻松集成: 接入方式说明Vue 3 项目直接安装 openprint26,使用 `` 组件React 项目通过引擎 SDK 渲染模板,或用 Web Components 包装设计器Angular 项目引擎 SDK 渲染 + iframe 嵌入设计器原生 JS / 任何框架引擎 SDK 零依赖,render({ template, data }) 即可输出 HTML🤖 AI 一句话生成模板 告别手动拖拽,直接描述需求即可生成专业打印模板。支持快递面单、物流标签、仓储单据、零售小票等多种场景。 AI 助手 AI 自然语言生成打印模板,一句话完成面单设计 用户输入:"帮我生成一张快递面单,含收件人、寄件人和运单号条码" AI 输出: 自动创建模板 → 布局文本控件 → 添加条码 → 一键使用☁️ 云打印 跨地域多门店远程打印,模板统一管理。浏览器直接打印,免装驱动。云端打印队列,断线自动重试,权限管控,打印日志审计。 云打印 多门店远程打印,模板统一管理,打印队列监控 云打印 云控大屏 📊 Web 报表设计 分组表、交叉表、主从表等多级报表结构,支持求和/平均/计数等汇总函数,嵌入柱状图/折线图/饼图,条件格式高亮数据预警,多数据源拼接。 报表设计 分组报表、交叉表、图表,满足复杂数据展示需求 功能特性 设计器 功能说明控件库文本、图片、矩形、圆形、线条、条码、二维码、表格、富文本、图表 10 种控件拖拽设计所见即所得,自由拖拽 + 吸附对齐 + 标尺辅助多页支持多页设计,每页独立页眉页脚,页间距可调数据绑定支持 JSON / CSV / API 数据源,Mustache 表达式绑定主题切换基于 Naive UI 的深色/浅色主题,一键切换框架无关引擎层纯 TypeScript,支持 React/Vue/Angular/原生 JS模板管理本地存储,模板导入/导出,模板市场实时预览预览数据绑定效果,分页预览导出PDF / JPG / SVG / HTML 多格式导出打印与对接 Web 直接打印 — 浏览器调用系统打印对话框 桌面静默打印 — 配套 C++ Qt 客户端,零弹窗打印 云打印 — 远程门店打印,打印队列管理 ERP 对接 — HTTP API 对接,3 分钟接入 技术栈 设计器 UI 层 Vue 3 Naive UI Fabric.js Pinia 核心引擎层(框架无关) TypeScript Vite Vitest UnoCSS 引擎层零框架依赖,设计器 UI 基于 Vue 3 + Naive UI。React / Angular / 原生 JS 项目均可通过引擎 SDK 集成。快速开始 1. 构建 SDK pnpm install pnpm build:sdk # 产物 → dist-sdk/2. 装进你的项目 # A. 本地路径直连(开发期最省事,改完重建即生效) pnpm add file:/绝对路径/open-print # B. 打成 tgz 分发(给别的机器 / 交付客户) pnpm pack:sdk # → openprint26-0.0.0.tgz(约 3.5 MB) pnpm add ./openprint26-0.0.0.tgzSDK 产物零裸 import(jspdf / katex / bwip-js / opentype 全部已打进包), 安装时只会装 openprint26 这一个包,不会搅乱业务项目里的 vue / fabric 版本。 ⚠️ 记得把 dist-sdk/fonts/ 复制到业务项目的静态目录(Vite 项目 → public/fonts/)—— 引擎导出 PDF 时会 fetch('/fonts/SourceHanSerifCN-Regular.ttf')。 3. 嵌入设计器(`` 自定义元素) 设计器以 iframe 薄桥接嵌入,宿主侧零框架依赖(Vue / React / 原生都一样): import { definePrintDesigner } from 'openprint26' definePrintDesigner() // 注册 ,全局只需一次内置设计器(约 5.9 MB / gzip 1.9 MB)按需动态加载,只在用到 `` 时才下载, 普通渲染 / 导出 / 打印不受影响。想独立部署设计器时再写 src="/你的路径/index.html"。 跨文档不能传函数,字段与保存都走数据 / 事件 —— 详见 SDK 对接教程 §3.3。 想让业务模块零代码接入? 用打印中台(元数据驱动):配置一次适配器 → 设计页放一行 `(bizCode 从 URL 读)→ 出纸一行 quickPrint('PURCHASE_IN', row.id)`。 详见 ERP 打印中台对接教程。 React 项目使用 渲染引擎通过 SDK 直接调用,零框架依赖: import { useEffect, useRef } from 'react' import { render } from 'openprint26' export default function App() { const containerRef = useRef(null) useEffect(() => { render({ template: templateJson, data }).then(({ html, pages, warnings }) => { containerRef.current!.innerHTML = html console.log('共', pages, '页;告警:', warnings) }) }, []) return }原生 JS / 任意框架使用 import { render, createHeadless } from 'openprint26' // 1. 渲染模板为 HTML(异步:二维码等资源在渲染期解析) const { html, pages, warnings } = await render({ template: templateJson, data: { sender_name: '张三', receiver_name: '李四', tracking_no: 'SF1234567890', }, }) document.getElementById('print-area').innerHTML = html // 2. 导出 PDF / JPG / SVG const headless = createHeadless() const { blobs, filenames } = await headless.exportPdf({ template: templateJson, data }) blobs.forEach((b, i) => downloadBlob(b, filenames[i])) headless.dispose()Node 服务端使用 // 仅渲染 HTML,不依赖 DOM;PDF 请交给 puppeteer / wkhtmltopdf import { render } from 'openprint26/node' const { html } = await render({ template: templateJson, data })体积:核心约 190 kB(gzip ~57 kB)。条码、二维码、公式(KaTeX)与 jspdf 均为 按需加载 —— 模板里没有对应控件就不会下载。 实测业务项目 vite build 后入口主包仅 1.6 kB,其余按需 chunk 交给打包器切分。从源码运行 # 克隆仓库 git clone https://gitee.com/haiming236/openprint.git cd open-print # 安装依赖 pnpm install # 启动开发服务器 pnpm dev # 构建生产版本 pnpm build # 预览生产构建 pnpm preview环境要求 Node.js >= 22.18.0 pnpm >= 9.x 在线演示 访问 https://openprint.yy360.space 在线体验设计器。 AI 助手 OpenPrint 内置 AI 助手,支持自然语言生成打印模板。 使用方式 新建模板 — 输入需求描述,AI 自动生成完整模板 修改当前模板 — 选中控件,让 AI 调整布局或样式 字段接地 — 自动识别数据字段并绑定到模板控件 技术原理 基于 LLM 解析用户意图,输出结构化模板描述 内部规范引擎将描述转换为 Fabric.js 控件配置 支持上下文感知,可在已有模板上增量修改 支持的场景 快递面单(顺丰、京东、邮政等格式) 物流标签(运单号、目的地、重量) 仓储单据(入库单、出库单、盘点单) 零售小票(收银小票、退换货单) 发票(增值税发票、收据) 自定义报表 技术架构 OpenPrint 采用 引擎层与 UI 层分离 的架构,核心引擎零框架依赖,可被任意前端框架调用: ┌─────────────────────────────────────────────────────────────────────┐ │ UI 层(可替换) │ │ │ │ ┌─────────────────┐ ┌──────────────┐ ┌───────────────────────┐ │ │ │ Vue 3 + Naive UI │ │ React │ │ 原生 JS / Angular │ │ │ │ 设计器(官方) │ │ 自定义 UI │ │ iframe / Web Component│ │ │ └────────┬────────┘ └──────┬───────┘ └──────────┬────────────┘ │ │ └───────────────────┴─────────────────────┘ │ │ │ SDK API │ ╞════════════════════════════════╪═══════════════════════════════════╡ │ 引擎层(框架无关) │ │ ▼ │ │ ┌───────────────────────────────────────────────────────────────┐ │ │ │ 排版引擎 (Layout Engine) — 纯 TypeScript │ │ │ │ 数据绑定 │ 表达式计算 │ 分页引擎 │ 表格引擎 │ 分组引擎 │ │ │ └───────────────────────────┬───────────────────────────────────┘ │ │ ▼ │ │ ┌───────────────────────────────────────────────────────────────┐ │ │ │ 渲染引擎 (Renderer) — 纯 TypeScript │ │ │ │ HTML 渲染 │ PDF 导出 │ JPG 导出 │ SVG 导出 │ 富文本渲染 │ │ │ └───────────────────────────────────────────────────────────────┘ │ └─────────────────────────────────────────────────────────────────────┘ │ ┌────────┴────────┐ ▼ ▼ ┌──────────────┐ ┌──────────────┐ │ C++ Qt 客户端 │ │ 云打印服务 │ │ 静默打印 │ │ 远程打印 │ └──────────────┘ └──────────────┘分层说明 层级技术说明设计器 UIVue 3 + Naive UI + Fabric.js官方可视化设计器,提供拖拽、属性面板、图层管理等交互排版引擎纯 TypeScript模板解析、数据绑定、分页、表格、分组、表达式计算渲染引擎纯 TypeScriptHTML/PDF/JPG/SVG 多格式渲染导出,零框架依赖AI 助手TypeScriptLLM 意图解析、模板生成、上下文管理桌面客户端C++ + Qt静默打印、批量打印、打印机管理核心模块 模块路径说明排版引擎src/core/layout-engine/数据绑定、分页、表格、分组、表达式(框架无关)渲染引擎src/core/renderer-html/HTML 渲染、CSS 生成、富文本渲染(框架无关)导出引擎src/core/export-engine/PDF、JPG、SVG 导出(框架无关)SDKsrc/core/sdk/引擎对外 API 封装,供任意框架调用设计器src/design/Vue 3 + Naive UI 设计器界面AI 助手src/ai/AI 生成模板、上下文管理控件库src/design/canvas/controls/10 种 Fabric.js 控件项目结构 open-print/ ├── src/ │ ├── ai/ # AI 助手(生成/规范化/客户端) │ ├── core/ # 核心引擎 │ │ ├── layout-engine/ # 排版引擎(数据绑定/分页/表格/分组) │ │ ├── renderer-html/ # HTML 渲染器 │ │ ├── export-engine/ # 导出引擎(PDF/JPG/SVG) │ │ ├── chartkit/ # 图表渲染(柱状图/折线图/饼图) │ │ ├── fonts/ # 字体加载与管理 │ │ ├── headless/ # 无头渲染 │ │ ├── spec/ # 模板规范与校验 │ │ └── sdk/ # SDK 封装 │ ├── design/ # 设计器界面 │ │ ├── canvas/ # Canvas 画布 & 控件 │ │ ├── panels/ # 属性/图层/数据源面板 │ │ ├── preview/ # 预览面板 │ │ ├── toolbar/ # 顶部工具栏 │ │ ├── modals/ # 模态框(导入/导出/设置) │ │ └── stores/ # Pinia 状态管理 │ ├── repository/ # 数据仓库(本地/HTTP/模拟) │ ├── types/ # TypeScript 类型定义 │ ├── config/ # 配置(打印设置/AI 设置) │ ├── theme/ # 主题系统 │ └── utils/ # 工具函数 ├── website/ # 宣传官网 ├── dist/ # 构建输出 ├── public/ # 静态资源 └── docs/ # 文档部署 静态部署 构建产物为纯静态文件,可部署到任何 HTTP 服务器: pnpm build # 将 dist/ 目录部署到 Nginx / Apache / Vercel / Netlify 等Nginx 配置示例 server { listen 80; server_name your-domain.com; root /path/to/open-print/dist; index index.html; location / { try_files $uri $uri/ /index.html; } }Docker 部署 FROM nginx:alpine COPY dist/ /usr/share/nginx/html COPY nginx.conf /etc/nginx/conf.d/default.conf EXPOSE 80桌面客户端 OpenPrint 提供配套的 C++ Qt 桌面打印客户端,支持: 静默打印 — 接收设计器模板,直接发送到本地打印机,零弹窗 批量打印 — 支持 CSV/JSON 数据批量渲染与打印 本地打印机管理 — 获取打印机列表、状态监控 HTTP 接口 — 通过 REST API 接收打印任务 跨平台 — Windows / Linux / macOS 桌面客户端 C++ Qt 桌面客户端,静默打印,批量处理 技术栈 C++ Qt CMake ERP 对接 OpenPrint 提供标准 HTTP API,3 分钟即可完成 ERP 对接: 对接流程 设计模板 — 在 Web 设计器中拖拽生成打印模板 导出模板文件 — 导出 .json 模板文件 API 对接 — ERP 系统通过 HTTP 推送数据 + 模板 ID,触发打印 ERP 对接 标准 HTTP API 对接,3 分钟接入 ERP 系统 API 示例 POST /api/print Content-Type: application/json { "template_id": "waybill-001", "data": { "sender_name": "张三", "sender_phone": "13800138000", "receiver_name": "李四", "receiver_address": "北京市朝阳区..." }, "printer": "local-printer-01", "copies": 1 }FAQ 如何安装 OpenPrint? npm i openprint26详细用法见 快速开始 章节。 支持 React / Angular / 原生 JS 吗? 支持。OpenPrint 的核心渲染引擎使用纯 TypeScript 实现,零框架依赖(已验证产物不含 Vue 运行时)。引擎 SDK 提供 render()、renderDocument()、createHeadless() 等方法,在任何 JS 环境中均可直接调用。 浏览器:import { render, createHeadless } from 'openprint26' —— 可渲染并导出 PDF / JPG / SVG Node 服务端:import { render } from 'openprint26/node' —— 仅渲染 HTML(导出需要 DOM) 设计器用了什么 UI 组件库? 设计器界面基于 Naive UI 构建,搭配 Vue 3 + Fabric.js。Naive UI 提供了完整的深色/浅色主题支持、丰富的组件库和优秀的开发体验。 OpenPrint 需要后端服务吗? 不需要。OpenPrint 是纯前端应用,零后端依赖。模板存储在浏览器本地(IndexedDB),AI 功能通过直接调用 LLM API 实现。如需对接打印机或 ERP,可部署可选的桌面客户端。 支持哪些浏览器? Chrome / Edge / Firefox / Safari 等现代浏览器。推荐使用 Chromium 内核浏览器以获得最佳体验。 如何自定义字体? 将字体文件(.ttf / .woff2)放入 public/fonts/ 目录,并在 src/core/fonts/catalog.ts 中注册即可。 启动客户端,支持扫描系统全部字体 支持批量打印吗? 支持。通过 CSV/JSON 数据源 + 模板引擎,可批量生成多页文档并导出或打印。桌面客户端支持批量静默打印。 如何导出模板与他人分享? 使用模板导出功能导出 .json 文件,其他人可通过导入功能加载使用。也支持 URL 编码分享(零后端)。 贡献指南 欢迎贡献代码、提交 Issue 或建议! 开发流程 Fork 本仓库 创建特性分支 (git checkout -b feature/amazing-feature) 提交更改 (git commit -m 'feat: add amazing feature') 推送到分支 (git push origin feature/amazing-feature) 提交 Pull Request 提交规范 本项目使用 Conventional Commits 规范: feat: 新功能 fix: 修复 docs: 文档变更 refactor: 重构 test: 测试 chore: 构建/工具变更 开发命令 # 运行测试 pnpm vitest # 类型检查 pnpm type-check # 格式化代码 pnpm format # 代码覆盖率 pnpm vitest --coverage赞助支持 OpenPrint 是一个开源项目,如果你觉得它对你有帮助,欢迎赞助支持项目持续研发和维护,扫码请备注, ...(内容过长,已截断,更多详情请访问项目地址) ⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 -
snail-ai {card-default label="? 项目信息"} ? 项目名称:snail-ai ? 开发语言:Java ⭐ Star数:863 | ? Fork数:330 ? 开源协议:Apache-2.0 ? 项目地址:https://gitee.com/aizuda/snail-ai {/card-default} 项目介绍 Snail AI 企业级 AI Agent 平台 - 让 AI 更智能,让开发更高效 项目详情 项目截图 ??? 灵活,易用和可扩展的企业级 AI 智能体平台 ✅️ 基于 Spring Boot 4 + Spring AI,开箱即用的多模型、多 Agent 管理平台 ✅️ 支持 RAG、记忆、技能编排、向量检索等核心 AI 能力使用前务必先了解版权 Aizuda/SnailAI 采用 APACHE LICENSE 2.0 开源协议,您在使用过程中,需要注意以下几点: ⭕本项目 双协议授权 默认采用 Apache-2.0 协议开源 完全开放 遵守附加协议 的前提下允许任何目的商用场景(不包含扩散到第三方例如:提供给第三方源码、提供SaaS服务给第三方)。 如果违反 附加协议 自动升级为 AGPL-3.0 协议。 ?附加协议:使用方在项目介绍中显著位置必须标注版权信息(链接仓库地址),不允许删除源码注释申明,不允许山寨换皮商用与官方企业版竞争(包含二次开源),否则视为侵权(索赔200万)。 使用必须遵守国家法律法规,⛔不允许非法项目使用,后果自负❗ 简介 Snail AI 是一个灵活、可扩展的企业级 AI 智能体平台。基于 Spring Boot 4 和 Spring AI 构建,提供多模型管理、智能体编排、RAG 知识库、长期记忆、技能管理等核心能力。拥有完善的后台管理界面和 OpenAPI 接口,支持快速接入和二次开发。开源地址 snail-job-admin(基于soybean-admin开源项目搭建) snail-job snail-ai-admin snail-ai-chat 核心特性 多模型管理 — 统一接入和管理多种大语言模型(LLM),灵活切换 智能体(Agent) — 可编排、可扩展的 Agent 框架,支持多 Agent 协作 RAG 知识库 — 基于向量检索的检索增强生成,支持 Milvus / Elasticsearch 长期记忆 — Agent 对话记忆持久化,提升上下文连贯性 技能管理 — 可配置的技能(Skill)体系,扩展 Agent 能力边界 资源管理 — 文档解析(PDF、Office)、对象存储(MinIO) OpenAPI — 标准化 API 接口,方便第三方系统集成 后台管理 — 基于 SoybeanAdmin 的现代化管理界面 快速开始 QuickStart 期望 欢迎提出更好的意见,帮助完善 Snail AI。 系统截图 title=title=title=title=title=title=title=title=title=title=title=title=title=title=⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 -
AtomUI {card-default label="? 项目信息"} ? 项目名称:AtomUI ? 开发语言:C# ⭐ Star数:886 | ? Fork数:137 ? 开源协议:LGPL-3.0 ? 项目地址:https://gitee.com/atomui/atomui {/card-default} 项目介绍 AtomUI 基于 Avalonia 强大的跨平台能力,实现了 Ant Design 在 .NET 体系下的设计系统,致力于将其精致的设计语言和高效的用户体验带入跨平台桌面应用开发领域。 项目详情 项目截图 AntDesign AtomUI NuGet Download 更新日志 · 提交Bug · 提交需求 文档语言: English | 简体中文 介绍 AtomUI 是面向 Avalonia/.NET 桌面应用的 Ant Design 6 组件体系,目标是把 Ant Design 的企业级交互模式、 视觉语言、设计 Token 和主题定制能力带到 Windows、macOS、Linux 原生跨平台应用中。 项目提供面向生产场景的桌面控件、图标包、字体包、原生窗口集成、DataGrid、ColorPicker,以及用于自定义控件、 Token 和本地化开发的源代码生成器。欢迎提交 Issue、PR 和改进建议。 项目截图 特性 将 Ant Design 6 的交互体验和视觉体系适配到原生 Avalonia 桌面应用。 提供覆盖布局、导航、数据录入、反馈、数据展示等场景的开箱即用控件,并按需提供 DataGrid、ColorPicker 等高级包。 基于 Avalonia 样式与资源系统实现 Token 驱动的主题能力,便于在应用级统一定制视觉风格。 使用统一的 .NET/XAML 开发模型支持 Windows、macOS、Linux 跨平台桌面应用。 提供自定义控件、主题 Token、本地化相关的源代码生成能力,减少重复基础设施代码。 运行环境 .NET 8 及其以上(构建 AtomUI MSBuild 集成需要 .NET 10 SDK) Avalonia 12.1.2 支持 Windows、macOS、Linux 跨平台 最新版本说明 AtomUI 6.2.1 将 Pagination 的可见页码窗口与快速跳页行为对齐 Ant Design,新增自定义 page-size changer 模板, 并修复 Menu 子菜单生命周期、反馈层叠、Steps 布局和 Gallery 预览。本版本把 Pagination 导航容器池从 11 个调整为 9 个;升级前请阅读 6.2.1 API 迁移指南和 更新日志。 感谢通明湖中心孵化 AtomUI OSS 项目截图 感谢 Gitee 对 AtomUI 的认可 项目截图 中文社区 目前我们提供 QQ 和微信开发者交流群,欢迎对 AtomUI 或 Avalonia 感兴趣的开发者扫码加入: 项目截图 项目截图 PS:扫码请注明来意,比如:学习 AtomUI 或 Avalonia 爱好者。开始使用 AtomUI 推荐通过 NuGet 安装。先安装主桌面控件包,再根据应用需要按需添加 DataGrid、ColorPicker、Extras 等可选包。 下面示例使用当前项目最新版本。 目前我们已经发布的包如下: 包名描述AtomUI.Native原生平台适配基础设施AtomUI.Core核心基础设施 — 主题系统、Token 系统、动画AtomUI.Fonts.AlibabaSansAlibaba Sans 字体包AtomUI.Fonts.AlibabaPuHuiTi阿里巴巴普惠体字体包AtomUI.Icons.Shared图标基础设施AtomUI.Icons.AntDesignAnt Design 图标包AtomUI.Controls.Shared面向控件开发的共享接口与枚举AtomUI.Controls基础控件与通用能力AtomUI.Desktop.Controls桌面控件库 — 主要安装包AtomUI.Desktop.Controls.DataGridDataGrid 数据表格控件(按需引入)AtomUI.Desktop.Controls.ColorPickerColorPicker 颜色选择器控件(按需引入)AtomUI.Desktop.Controls.Extras补充桌面控件(按需引入)AtomUI.Generator面向自定义控件、Token 与本地化开发的源代码生成器dotnet add package AtomUI.Desktop.Controls --version 6.2.1 dotnet add package AtomUI.Desktop.Controls.DataGrid --version 6.2.1 dotnet add package AtomUI.Desktop.Controls.ColorPicker --version 6.2.1 dotnet add package AtomUI.Desktop.Controls.Extras --version 6.2.1您也可以在 IDE 的 NuGet 包管理器中安装。以 Rider 为例,可以依次点击: NuGet -> 软件包 搜索 AtomUI,即可找到可用包,并按项目需要安装。 安装前请查看包详情中的“框架”和“依赖”,确认目标框架与 Avalonia 版本兼容。启用 AtomUI 库 配置项目文件 WinExe net8.0 enable enable true app.manifest 配置程序入口文件 using Avalonia; using System; using AtomUI; using ReactiveUI.Avalonia; namespace AtomUIProgressApp; internal class Program { [STAThread] public static void Main(string[] args) => BuildAvaloniaApp() .StartWithClassicDesktopLifetime(args); public static AppBuilder BuildAvaloniaApp() { return AppBuilder.Configure() .UseReactiveUI() .UseAtomUIPlatformDetect() .WithAtomUIDefaultOptions() .WithDeveloperTools() .LogToTrace(); } }在 Application 类中启用 AtomUI using AtomUI; using AtomUI.Desktop.Controls; using AtomUI.Localization; using AtomUI.Theme; using Avalonia; using Avalonia.Markup.Xaml; public partial class App : Application { public override void Initialize() { AvaloniaXamlLoader.Load(this); this.UseAtomUI(builder => { builder.UseLanguages( LanguageTags.ZhCN, [LanguageTags.EnUS, LanguageTags.ZhCN, LanguageTags.ZhTW]); builder.WithDefaultTheme(IThemeManager.DEFAULT_THEME_ID); builder.UseAlibabaSansFont(); builder.UseDesktopControls(); builder.UseDesktopColorPicker(); // 可选 builder.UseDesktopDataGrid(); // 可选 builder.UseDesktopExtras(); // 可选 }); } }开始使用 AtomUI 注册 AtomUI 后,可以直接在 XAML 中使用 AtomUI 控件和 Ant Design 图标。 开始使用 在 GitHub 上点赞 体验所有控件 您可以在本机启动 Gallery 项目,浏览 AtomUI 控件、典型用法、示例和生成文档。 git clone https://github.com/AtomUI/AtomUI.git cd AtomUI dotnet run --project controlgallery/AtomUIGallery.Desktop/AtomUIGallery.Desktop.csproj小的示例项目 Gallery 项目覆盖面较完整。如果您希望先看更小的入门项目,可以前往: AtomUI/AtomUI.Examples 这些示例展示了更紧凑的应用搭建方式,更适合作为新项目起点。 赞助商 项目截图 SophNet 提供稳定高效的 AI 模型 API 平台,帮助开发者快速接入大模型能力。 项目截图 火数云提供云服务器、高防与 GPU 算力服务,支持企业安全、可靠地完成业务上云。 致谢 Ant Design 项目截图 Ant Design 是由蚂蚁集团推出的企业级 UI 设计语言和 React 组件库。它提供了一套高质量、统一的 React 组件,包含丰富的预设主题与国际化支持,致力于提升企业级应用的设计和开发效率。其优雅的设计和出色的开发体验,使其成为中后台项目中最流行的前端解决方案之一。 Avalonia OSS 项目截图 Avalonia 是一个跨平台的 .NET UI 框架,使用 XAML 语言设计界面。它支持 Windows、macOS、Linux、iOS 和 Android 等多个平台,提供与 WPF 相似的开发体验。凭借其高性能的渲染引擎和丰富的控件库,Avalonia 能够帮助企业快速构建现代化的桌面和移动应用程序。 许可证说明 使用 AtomUI OSS 的项目需要遵循 LGPL v3 协议。商业应用,包括公司内部项目、个人商业项目和外包项目, 在使用已发布二进制包链接的情况下可以免费使用。如果基于源码定制 AtomUI,则需要按协议开放修改代码, 或购买商业授权。商业授权请联系:北京秦派软件科技有限公司。 ? 贡献 欢迎各界人士贡献各种资源,如果您对贡献代码感兴趣,请随意查看我们的 GitHub 问题页面,让我们见识一下您的实力。 ⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 -
surpass {card-default label="? 项目信息"} ? 项目名称:surpass ? 开发语言:Java ⭐ Star数:3482 | ? Fork数:1446 ? 开源协议:Apache-2.0 ? 项目地址:https://gitee.com/dromara/surpass {/card-default} 项目介绍 Dromara Surpass API权限开放平台,面向REST API资源无状态认证和调用,实现企业统一权限管理;零代码开发,SQL定义RESTful OpenAPI接口,支持JWT、RBAC资源权限管理,Swagger自动生成等,遵循Apache-2.0开源免费 项目详情 项目截图 项目截图 项目截图 项目截图 Surpass API权限开放平台 SurpassAPI权限开放平台,零代码开发,SQL定义RESTful OpenAPI接口;面向REST API资源无状态认证和调用,实现企业统一权限管理 提供基于Mybatis SQL方式的OpenAPI功能定义,只需编写 SQL,零代码开发 API 服务 实现企业内部系统统一权限管理,提供标准应用资源读取接口,轻松掌控企业内部复杂的权限 基于角色访问控制RBAC,提供对应用系统的权限控制,经典RBAC权限管理:用户-角色-应用-资源 提供页面可配置式的,动态的 API 权限安全管理支持 基于客户端Token的认证机制,保护OpenAPI安全 数据传输动态秘钥加密,JWT过期刷新,用户操作监控等加固应用安全 全方位日志记录,包括API地址、归属地、调用权限控制,加强API调用审计 根据OpenAPI配置自动生成Swagger文档 gitee | github 快速开始 部署文档 - 完整的部署指南 在线文档 - 官方文档 官方微信: 项目截图 效果展示 仪表盘 image1 数据源 image2 客户端 image3 用户管理 image4 角色管理 image5 应用管理 image6 资源管理 image7 OpenAPI接口配置 image8 OpenAPI接口Debug image9 客户端权限 image10 角色权限 image11 接口调用日志 image12 开源推荐 tancloud Saas监控平台 https://console.tancloud.cn HertzBeat赫兹节拍 易用友好的高性能监控告警系统。 https://hertzbeat.apache.org/ MaxKey 业界领先的IAM身份管理和身份认证产品: https://www.maxkey.top/ JustAuth 小而全而美的第三方登录开源组件: https://gitee.com/yadong.zhang/JustAuth PhalApi 一个轻量级PHP开源接口框架: https://www.phalapi.net/ ?️ License Apache License, Version 2.0 ⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 -
SamWaf {card-default label="? 项目信息"} ? 项目名称:SamWaf ? 开发语言:Go ⭐ Star数:724 | ? Fork数:200 ? 开源协议:Apache-2.0 ? 项目地址:https://gitee.com/samwaf/SamWaf {/card-default} 项目介绍 SamWaf开源轻量级网站防火墙,完全私有化部署 项目详情 English | 简体中文 | Español | हिन्दी | العربية | Français | Português | Русский | বাংলা | اردو | 日本語 | Deutsch | Bahasa Indonesia | 한국어 项目截图 一款开源轻量级的网站应用防火墙 Release Last commit Docker Pulls Release Downloads Gitee Gitee star Atomgit star GitHub stars License 开发初衷: 【轻量】早期在使用过一些产品基于 nginx,apache,iis 做插件进行防护,但是插件形式耦合度太高了。 【私有化】 后期基本上都是有云防护,而私有化部署针对一般的中大企业能承受,普通小企业公司,小工作室费用有点太高了。 【隐私加密】 网站防护过程中不希望本地数据上云做处理,想做一款涉及的本地信息进行加密,管理端的网络通信进行加密。 【DIY】在这么多年网站维护开发过程中有些特定的功能想加入自己的想法,无法实现。 【感知】如果站长没有用过类似的 waf ,单纯从自己的日志或者是 nginx 、apache 、IIS 等查看信息不方便,不知道到底网站有谁在访问,都请求了什么? 总之,在网站或 API 防护上做一款趁手的兵器,来抵御一些异常情况,确保网站和应用的正常运行。 软件介绍 SamWaf网站防火墙是一款适用于小公司、工作室和个人网站的开源轻量级网站防火墙,完全私有化部署,数据加密且仅保存本地,一键启动,支持 Linux、Windows 64位、ARM64,并提供 Docker 镜像。默认使用内置加密 SQLite 存储、无需安装任何外部依赖,也可按需切换 MySQL / PostgreSQL。 架构 SamWaf架构 界面 SamWaf网站防火墙概览 添加主机 攻击日志 项目截图 项目截图 CC IP黑名单 项目截图 项目截图 IP白名单 LDP 项目截图 项目截图 添加规则脚本日志 选择日志 项目截图 项目截图 日志详情 手动规则 项目截图 项目截图 URL黑名单 URL白名单 项目截图 项目截图 主要功能 基础特性 代码完全开源(Apache 2.0) 完全私有化部署,数据加密后仅保存本地 单文件一键启动,轻量化不依赖三方服务(MySQL/Redis 均为可选) 完全独立引擎,防护功能不依赖 IIS、Nginx 支持 IPV6 流量接入 支持 HTTP/1.1、HTTP/2、HTTP/3(QUIC) 支持 WebSocket 转发 反向代理与负载均衡(加权轮询、IP Hash、最小连接数),后端健康检查自动摘除异常节点 路径规则:按路径反向代理、静态文件、301/302 重定向,可指定后端协议与响应超时 静态站点伺服 TCP/UDP 四层隧道转发(支持 IP 访问控制、时间段控制) 网页缓存加速 HTTP Basic Auth 站点访问认证 支持自定义拦截界面 攻击防护 SQL 注入检测 XSS 跨站脚本检测 RCE 远程命令执行检测 扫描器工具识别 目录穿越检测 文件上传检测(危险扩展名、Webshell 特征、伪装 Content-Type) CC 频率限制 虚假爬虫/Bot 识别(搜索引擎爬虫反向 DNS 验真) 防盗链 CSRF 防护(按站点 Origin/Referer 校验) 敏感词过滤 支持 OWASP CRS 规则集(Coraza 引擎,规则可启停/覆盖) 自定义防护规则,支持脚本和界面编辑 人机验证:点选验证码、Cap.js 工作量证明 仅记录模式:命中攻击只记录不拦截,便于观察调优规则 访问控制 支持 IP 黑/白名单 支持 URL 黑/白名单 地区封禁(内置 ip2region/GeoIP2 离线库,支持 IPv4/IPv6) 联动操作系统防火墙封禁 IP IP 失败次数达到阈值自动联动封禁 支持全局一键配置,支持分网站单独防护策略 数据安全 日志加密保存 通讯日志加密 信息脱敏保存(DLP),支持指定界面数据隐私输出 网页防篡改(基线学习 + 自动恢复) Cookie 安全加固(HttpOnly/Secure/SameSite) SSL 证书 自动 SSL 证书申请以及续签(ACME,支持多 CA 与 EAB) SNI 多证书、多端口 HTTPS SSL 证书批量检测到期情况 证书文件自动加载 运维管理 账号 RBAC 权限、OTP 双因素认证、登录/操作日志 数据统计报表、系统/主机监控 数据保留策略与日志自动分片归档 默认 SQLite(加密),可选 MySQL / PostgreSQL,内置 SQLite→MySQL / SQLite→PostgreSQL / MySQL→PostgreSQL 一键迁移 在线一键升级、零停机滚动重启、版本回退 批量任务、定时任务、数据备份 开放 API 通知告警 支持邮件、钉钉、飞书、企业微信、Server酱、Webhook、Kafka、RabbitMQ、日志文件等通知/投递渠道 使用说明 强烈建议您在测试环境测试充分在上生产,如遇到问题请及时反馈 下载最新版本 gitee: https://gitee.com/samwaf/SamWaf/releases github: https://github.com/samwafgo/SamWaf/releases atomgit: https://atomgit.com/SamSafe/SamWaf/releases 快速启动 Windows 直接启动 SamWaf64.exe 服务形式(安装服务需以管理员身份运行cmd) //安装并启动 SamWaf64.exe install && SamWaf64.exe start //停止并卸载 SamWaf64.exe stop && SamWaf64.exe uninstall Linux Linux 一键自动下载并安装脚本 curl -sSO https://update.samwaf.com/latest/install_samwaf.sh && bash install_samwaf.sh install Linux 一键卸载脚本 curl -sSO https://update.samwaf.com/latest/install_samwaf.sh && bash install_samwaf.sh uninstall Docker docker run -d --name=samwaf-instance \ --restart always \ -p 26666:26666 \ -p 80:80 \ -p 443:443 \ -v /path/to/your/conf:/app/conf \ -v /path/to/your/data:/app/data \ -v /path/to/your/logs:/app/logs \ -v /path/to/your/ssl:/app/ssl \ samwaf/samwaf 更多docker启动上面的解释 https://hub.docker.com/r/samwaf/samwaf 标签 latest :最新正式版本(建议生产使用) beta: 最新测试版本(可以在测试体验最新特性,或修正特定bug) 命令行工具 命令说明install / uninstall安装 / 卸载系统服务start / stop / restart启动 / 停止 / 重启服务rolling-restart零停机滚动重启(切换 Worker,业务不中断)resetpwd重置管理员密码resetotp重置安全码(OTP)repairdb修复损坏的数据库execsql在指定数据库上执行 SQL 语句migratedb离线迁移数据库 SQLite → MySQL / SQLite → PostgreSQL / MySQL → PostgreSQL(--dry-run 只做预估,--force 强制覆盖)rollback回退到历史备份版本示例:SamWaf64.exe resetpwd(Linux 对应 ./SamWafLinux64 resetpwd) 启动访问 http://127.0.0.1:26666 默认帐号:admin 初始密码:全新安装会自动生成随机密码并保存到 data/initial_password.txt(存量安装沿用原密码;请首次登录后立即修改) 升级指南 注意:升级过程会终止服务,请在闲时进行升级。 自动升级 如有新版本页面会弹出升级框进行确认即可发起升级,升级完毕后,页面会自动刷新。 手动升级 对于直接启动方式 关闭应用,下载最新程序替换,再手工启动就可以了。 对于以服务形式 1.先暂停服务 windows: SamWaf64.exe stop linux: ./SamWafLinux64 stop 2.替换最新应用文件 3.启动 windows: SamWaf64.exe start linux: ./SamWafLinux64 start PS:windows服务形式升级时候貌似会触发360、火绒规则导致无法正常替换新文件。此时可以手工替换。 熟悉这方面的朋友可以帮看下正确方式怎么处理。 在线文档 在线文档 代码相关 代码托管 gitee https://gitee.com/samwaf/SamWaf github https://github.com/samwafgo/SamWaf atomgit https://atomgit.com/SamSafe/SamWaf 介绍和编译 How to compile 编译说明 在线编译手册: https://doc.samwaf.com/dev/ 已测试支持的平台 已测试支持的平台 其它信息 更新IP数据库 测试效果 测试效果 安全策略 安全策略 问题反馈 当前 SamWaf 还正在不停迭代,欢迎大家反馈问题、提出意见 gitee issues github issues atomgit issues 邮件反馈:samwafgo@gmail.com 微信公众号 项目截图 Star 历史趋势 Star History Chart 许可证书 SamWaf 采用 Apache 2.0 license. 详细见 LICENSE . 第三方软件使用声明,见ThirdLicense 贡献代码 感谢以下小伙伴对本仓库的贡献! 项目截图 ⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 -
snackjson {card-default label="? 项目信息"} ? 项目名称:snackjson ? 开发语言:Java ⭐ Star数:367 | ? Fork数:86 ? 开源协议:Apache-2.0 ? 项目地址:https://gitee.com/noear/snackjson {/card-default} 项目介绍 新一代高性能 Jsonpath 框架。同时兼容 jayway.jsonpath 和 IETF JSONPath (RFC 9535) 标准规范(支持开放式定制)。 项目详情 SnackJson 一个 Json 框架,支持 JsonDom、JsonPath、JsonSchema(for Java) 兼容 `jayway.jsonpath` 和 IETF JSONPath (RFC 9535) 标准。兼容 JsonSchema draft-07 标准。支持开放式定制。 https://solon.noear.org/article/snack 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 语言: 中文 | English SnackJson 借鉴了 Javascript 所有变量由 var 申明,及 Xml dom 一切都是 Node 的设计。其下一切数据都以ONode表示,ONode也即 One node 之意,代表任何类型,也可以转换为任何类型。 强调 Json dom 的构建和操控能力 可以 Json path 高性能查询(比 jayway.jsonpath 快很多),同时兼容 jayway.jsonpath 和 IETF JSONPath (RFC 9535) 标准 (用 options 切换)。提供新一代 JsonPath 体验。 提供 Json schema 构建与校验,兼容 JsonSchema draft-07、draft-2019 标准 支持 json5 部分特性(无键字段,注释,等...) 优先使用 无参构造函数 + 字段 编解码(可减少注入而触发动作的风险) | 依赖包 | 描述 | |-------------------------------|------------------------| | org.noear:snack4 | 提供 json dom 构建和编解码支持 | | org.noear:snack4-jsonpath | 提供 json path 查询支持 | | org.noear:snack4-jsonschema | 提供 json schema 校验支持 | JSONPath 语法参考( IETF JSONPath (RFC 9535) ) 语法元素描述$根节点标识符@当前节点标识符(仅在过滤选择器中有效)[]子段:选择节点的零个或多个子节点.name简写 ['name'].*简写 [*]..[]后代段:选择节点的零个或多个后代..name简写 ..['name']..*简写 ..[*]'name'名称选择器:选择对象的命名子对象*通配符选择器:选择节点的所有子节点3索引选择器:选择数组的索引子项(从 0 开始)0:100:5数组切片选择器:数组的 start:end:step?过滤选择器:使用逻辑表达式选择特定的子项fun(@.foo)过滤函数:在过滤表达式中调用函数(IETF 标准).fun()聚合函数:作为片段使用(jayway 风格)过滤选择器语法参考: 语法描述优先级(...)分组5name(...)函数扩展5!逻辑 非4==,!=,`,>=`关系比较符3&&逻辑 与2`\\`逻辑 或1IETF JSONPath (RFC 9535) 标准定义操作符(支持) 操作符描述示例==左等于右(注意1不等于'1')$[?(@.a == 1)]!=左不等于右$[?(@.a != 1)]``左大于右$[?(@.a > 1)]>=左大于等于右$[?(@.a >= 1)]jayway.jsonpath 增量操作符(支持) 操作符描述示例=~左匹配正则表达式[?(@.s =~ /foo.*?/i)]in左存在于右[?(@.s in ['S', 'M'])]nin左不存在于右 subsetof左是右的子集[?(@.s subsetof ['S', 'M', 'L'])]anyof左与右有一个交点[?(@.s anyof ['M', 'L'])]noneof左与右没有交集[?(@.s noneof ['M', 'L'])]size左(数组或字符串)的大小应该与右匹配$[?(@.s size @.expected_size)]emptyLeft(数组或字符串)应该为空$[?(@.s empty false)]IETF JSONPath (RFC 9535) 标准定义函数(支持) 函数描述参数类型结果类型length(x)字符串、数组或对象的长度值数值count(x)节点列表的大小节点列表数值match(x,y)正则表达式完全匹配值,值逻辑值search(x,y)正则表达式子字符串匹配值,值逻辑值value(x)节点列表中单个节点的值节点列表值jayway.jsonpath 函数(支持) 函数描述输出类型length()字符串、数组或对象的长度Integermin()查找当前数值数组中的最小值Doublemax()查找当前数值数组中的最大值Doubleavg()计算当前数值数组中的平均值Doublestddev()计算当前数值数组中的标准差Doublesum()计算当前数值数组中的总和Doublekeys()计算当前对象的属性键集合Setconcat(X)将一个项或集合和当前数组连接成一个新数组like inputappend(X)将一个项或集合 追加到当前路径的输出数组中like inputfirst()返回当前数组的第一个元素依赖于数组元素类型last()返回当前数组的最后一个元素依赖于数组元素类型index(X)返回当前数组中索引为X的元素。X可以是负数(从末尾开始计算)依赖于数组元素类型snack-jsonpath 增量操作符(支持) 操作符描述示例startsWith左(字符串)开头匹配右[?(@.s startsWith 'a')]endsWith左(字符串)结尾匹配右[?(@.s endsWith 'b')]contains左(数组或字符串)包含匹配右[?(@.s contains 'c')]JSONPath 语法示例 JSON 样本数据 { "store": { "book": [ { "category": "reference", "author": "Nigel Rees", "title": "Sayings of the Century", "price": 8.95 }, { "category": "fiction", "author": "Evelyn Waugh", "title": "Sword of Honour", "price": 12.99 }, { "category": "fiction", "author": "Herman Melville", "title": "Moby Dick", "isbn": "0-553-21311-3", "price": 8.99 }, { "category": "fiction", "author": "J. R. R. Tolkien", "title": "The Lord of the Rings", "isbn": "0-395-19395-8", "price": 22.99 } ], "bicycle": { "color": "red", "price": 399 } } }示例JSONPath表达式及其应用于示例JSON值时的预期结果 JSONPath预期结果$.store.book[*].author书店里所有书的作者$..autho所有作者$.store.*商店里的所有东西,包括一些书和一辆红色的自行车$.store..price商店里所有东西的价格$..book[2]第三本书$..book[2].author第三本书的作者$..book[2].publisher空结果:第三本书没有“publisher”成员$..book[-1]最后一本书$..book[0,1]`$..book[:2]`前两本书$..book[?@.isbn]所有有国际标准书号的书`$..book[?@.price {o.addNew().set("title", "开始").set("type", "start"); o.addNew().set("title", "结束").set("type", "end"); }); oNode.get("id").getInt(); oNode.get("layout").get(0).get("title").getString(); oNode.getOrNew("list").fillJson("[1,2,3,4,5,6]"); 支持 `json path` 查询、构建、删除 ONode.ofBean(store).select("$..book[?@.tags contains 'war'].first()").toBean(Book.class); //RFC9535 规范,可以没有括号 ONode.ofBean(store).select("$..book[?(!(@.category == 'fiction') && @.price (){}).getClass()); //泛型 ONode.ofJson("[{},{}]").toBean(new TypeRef>(){}); //泛型 //快捷方式 String json = ONode.serialize(user); User user = ONode.deserialize(json, User.class); ### 路径树接口 //case1 ONode o = ONode.ofJson(json); ONode rst = o.select("$.data.list[*].mobile"); //自动为查询到的节点,生成 path 属性 List rstPaths = rst.pathList(); //获取结果节点的路径列表 for(ONode n1 : rst.getArray()) { n1.path(); //当前路径 n1.parent(); //父级节点 } //case2 ONode o = ONode.ofJson(json).usePaths(); //手动为每个子节点,生成 path 属性 ONode rst = o.get("data").get("list").get(2); rst.path(); rst.parent(); ### 高级定制 Json 编解码定制 Options options = Options.of(); //添加检测器(for Feature.Read_AutoType) options.addChecker(clzName -> { //通过 if (clzName.startsWith("com.ok.xxx.")) { return TypeChecker.ALLOW; } //拒绝 if (clzName.startsWith("com.no.yyy.")) { return TypeChecker.DENY; } //跳过 return TypeChecker.SKIP; }); //添加编码器 options.addEncoder(Date.class, (ctx, value, target) -> { target.setValue(DateUtil.format(data, "yyyy-MM-dd")); }); //添加解码器 options.addDecoder(Date.class, ...); //添加创建器(接管类实例化) options.addCreator(...); //添加特性 options.addFeature(Feature.Write_PrettyFormat); //移除特性 options.removeFeature(Feature.Write_PrettyFormat); //设置日期格式附 options.addFeature(Feature.Write_UseDateFormat); //使用日期格式 options.dateFormat("yyyy-MM"); //.. String json = ONode.ofBean(orderModel, options).toJson(); JsonPath 函数与操作符定制 import org.noear.snack4.ONode; import org.noear.snack4.jsonpath.FunctionLib; public class FunctionDemo { public static void main(String[] args) { //定制 floor 函数 FunctionLib.register("floor", (ctx, argNodes) -> { ONode arg0 = argNodes.get(0); //节点列表(选择器的结果) if (ctx.isDescendant()) { for (ONode n1 : arg0.getArray()) { if (n1.isNumber()) { n1.setValue(Math.floor(n1.getDouble())); } } return arg0; } else { ONode n1 = arg0.get(0); if (n1.isNumber()) { return ctx.newNode(Math.floor(n1.getDouble())); } else { return ctx.newNode(); } } }); //检验效果(在 IETF 规范里以子项进行过滤,即 1,2) //out: 1.0 System.out.println(ONode.ofJson("{'a':1,'b':2}") .select("$.a.floor()") .toJson()); //参考 //out: 2.0 System.out.println(ONode.ofJson("{'a':1,'b':2}") .select("$[?floor(@) > 1].first()") .toJson()); } } import org.noear.snack4.ONode; import org.noear.snack4.jsonpath.OperatorLib; public class OperationDemo { public static void main(String[] args) { //定制操作符 OperatorLib.register("startsWith", (ctx, node, term) -> { ONode leftNode = term.getLeftNode(ctx, node); if (leftNode.isString()) { ONode rightNode = term.getRightNode(ctx, node); if (rightNode.isNull()) { return false; } return leftNode.getString().startsWith(rightNode.getString()); } return false; }); //检验效果 assert ONode.ofJson("{'list':['a','b','c']}") .select("$.list[?@ startsWith 'a']") .size() == 1; } } ### 特别感谢JetBrains对开源项目支持:  ## ⬇️ 下载地址 ## {alert type="warning"}下载后请先检查文件完整性,如有问题请在评论区反馈{/alert} -
go-view {card-default label="? 项目信息"} ? 项目名称:go-view ? 开发语言:TypeScript ⭐ Star数:16408 | ? Fork数:5091 ? 开源协议:MIT ? 项目地址:https://gitee.com/dromara/go-view {/card-default} 项目介绍 ?GoView 是一个Vue3搭建的低代码数据可视化开发平台,将图表或页面元素封装为基础组件,无需编写代码即可完成业务需求。 它的技术栈为:Vue3 + TypeScript4 + Vite2 + NaiveUI + ECharts5 +VChart + Axios + Pinia2 + PlopJS 项目详情 项目截图 项目截图 开源、精美、便捷的「数据可视化」低代码开发平台 项目截图 项目截图 长期赞助商 项目截图 项目截图 项目截图 ? 纯前端 分支: master ? 携带 后端 请求分支: master-fetch ? GoView 文档 地址:https://www.mtruning.club/ 项目纯前端-Demo 地址:https://vue.mtruning.club/ 项目带后端-Demo 地址:https://demo.mtruning.club/ Cloud IDE 代码在线预览地址:https://idegitee.com/dromara/go-view ? 后端项目看这里! 后端地址(社区实现,仅供参考): JAVA https://gitee.com/MTrun/go-view-serve (当前使用) .NET https://gitee.com/sun_xiang_yu/go-view-dotnet NODE https://gitee.com/qwdingyu/led Docker 镜像 https://gitee.com/AHEAD4/go-view-docker GO-goframe https://gitee.com/bufanyun/go-view-server GO-gin https://gitee.com/ls1990/go-view-serve 接口文档 https://docs.apipost.cn (不是最新, 以前端代码为准) 整体介绍 框架:基于 Vue3 框架编写,使用 hooks 写法抽离部分逻辑,使代码结构更加清晰; 类型:使用 TypeScript 进行类型约束,减少未知错误发生概率,可以大胆修改逻辑内容; 性能:多处性能优化,使用页面懒加载、组件动态注册、数据滚动加载等方式,提升页面渲染速度; 存储:拥有本地记忆,部分配置项采用 storage 存储本地,提升使用体验; 封装:项目进行了详细的工具类封装如:路由、存储、加/解密、文件处理、主题、NaiveUI 全局方法、组件等 可视化:基于开源图表库ECharts 和 VChart 编写,具有丰富的图表类型和适配大屏的主题效果; 入选 NaiveUI 社区精选资源推荐:查看 NaiveUI 推荐列表 说明文档: 说明文档 工作台: 工作台 请求配置: 请求配置 数据过滤: 数据过滤 高级事件编辑: 高级事件编辑 自定义组件颜色: 高级事件编辑 快捷主页: 快捷主页 主题色: 主题色 亮白主题: 亮白主题 最新动态: 整合字节图表框架 VCharthttps://visactor.io/vchart 图表框架 VChart 主要技术栈为: 名称版本名称版本Vue3.2.xTypeScript44.6.xVite4.2.xNaiveUI2.34.xECharts5.3.xPinia2.0.x详见 package.json???开发环境: 名称版本名称版本node18.20.xnpm10.7.xpnpm8.6.7windows11已完成图表: 分类名称名称名称名称图表柱状图横向柱状图折线图单/多 折线面积图(渐变色)*饼图环形图水球图雷达图*NaiveUI 多种进度散点图对数回归散点图热力图*漏斗图中国地图高德地图?信息文字渐变文字词云嵌套网页*图片视频??列表滚动排名列表滚动表格??小组件边框-01~13装饰-01~05数字翻牌通用时间*数字计数倒计时时钟?浏览器支持 开发和测试平台均在 Google 和最新版 EDGE 上完成,暂未测试 IE11 等其它浏览器,如有需求请自行测试与兼容。 安装 请查看文档:https://www.mtruning.club/ 代码提交 feat: 新功能 fix: 修复 Bug docs: 文档修改 perf: 性能优化 revert: 版本回退 ci: CICD 集成相关 test: 添加测试代码 refactor: 代码重构 build: 影响项目构建或依赖修改 style: 不影响程序逻辑的代码修改 chore: 不属于以上类型的其他类型(日常事务) 交流群 QQ 群:687586375 项目截图 Pro 部分功能展示 体验地址: https://ai.goviewlink.com/saas/ 项目截图 渲染海报 ⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 -
APITable {card-default label="? 项目信息"} ? 项目名称:APITable ? 开发语言:TypeScript ⭐ Star数:1703 | ? Fork数:416 ? 开源协议:AGPL-3.0 ? 项目地址:https://gitee.com/apitable/APITable {/card-default} 项目介绍 vika.cn维格表社区版,地表至强的开源低代码、多维表格工具,Airtable的开源免费替代,智能表格与数据库的结合。 项目详情 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 English | Français | Español | Deutsch | 简体中文 | 繁體中文 | 日本語 ✨ 快速开始 APITable 目前正在 积极开发中。 我们将在 2023 年 2 月下旬公布第一份发行版本。 加入 Discord 或 Twitter 保持联系。如果您只是想尝试APITable1, 点击这里 ⚡️Gitpod 在线 Demo. 如果您想要在本地或云端计算环境中安装 APITable ,请参阅 ? 安装 如果你想要设置你的本地开发环境,请阅读我们的 ?? 开发者指南 ? 功能特性 实时协作 神奇表单 项目截图 项目截图 API 优先的面板 无限跨表关联 项目截图 项目截图 强大的行/列权限 内嵌 项目截图 项目截图 APITable 提供了一系列令人惊奇的功能,从个人到企业。 先进的技术栈并开源 实时协作 允许多个用户实时或与 操作转换(OT) 算法同时进行编辑。 使用 canvas 渲染的极其流畅、用户友好、极其快速的数据库-电子表格界面。 数据库本地架构:变更集/操作/动作/快照等等。 实时协作 100k+ 数据行 从 数据(Data) 到 元数据(MetaData) 的全栈式API访问。 单向/双向表链接和 无限交叉链接 社区友好的编程语言和框架,TypeScript (NextJS + NestJS) 和 Java (Spring Boot) 美观和功能齐全的多维表格UI界面 CRUD: 创建、浏览、更新、删除表、列和行 字段操作: 排序、过滤、分组、隐藏/取消隐藏、高度设置。 基于空间(Space):使用分离的工作空间来代替基于 App/Base 的结构,使无限的表格连接成为可能。 暗色模式 和主题定制。 7 种视图类型: 网格视图(Datasheet) / 图库视图 / 脑图视图/ 看板视图 / 全功能网格视图 / 日历视图 一键式 API 面板 装备齐全 内置的 10+ 个官方模板 机器人自动化和自定义配置 商业化智能(BI)仪表板 一键式自动生成表单 可共享和嵌入的页面 多语言支持 集成 n8n.io / Zapier / Appsmith... 及更多 卓越的扩展性 超过 20 个官方开源组件,以及可扩展的 组件系统 可自定义的图表 & 仪表板 可自定义的数据列类型 可自定义的公式 可自定义的自动化机器人行为 企业级权限 镜像, 将视图变成镜像以实现行权限 通过非常简单的操作激活 列权限 文件夹/子文件夹/文件权限 树结构文件夹和可自定义的节点(文件) 团队管理 & 组织架构 企业级应用功能 SAML 单点登录(SSO) 审计 数据库自动备份 数据导出 水印 .... 使用可扩展的组件和插件,您可以添加更多功能。 ? 应用场景 为什么你必须知道 APITable 并作为你的下一个软件? 作为超级管理软件 灵活的项目管理 & 任务/问题管理 营销潜在客户管理。 最灵活和可连接的 CRM 灵活的 BI 图表系统 便于人们使用的表格和调查表 灵活的 ERP 低代码和无代码平台。 ...及更多, APITable 将 1000 个软件放入您的口袋中。 作为一个可视化数据库基础设施 将 APITable 嵌入 到你自己的软件 UI 中 带有 REST API 的可视化数据库 管理员仪表板 集中管理配置 多合一的企业数据库,连接你的所有 软件 ...及更多, APITable 连接一切 此外,它是开源和可扩展的 ? 面向 API API 面板 点击右角的 API 按钮将显示 API 面板 SQL式查询 APITable 将提供一个数据表查询语言(DQL)来查询您的数据库电子表格内容。 ? 嵌入友好 分享和嵌入 分享您的数据表或文件夹。通过复制和粘贴 HTML 脚本嵌入它们。 企业可用的嵌入 APITable.com 为证券业提供更多企业可用的嵌入功能。 安装 请确保您已在本地安装 docker & curl 。 如果您的计算机安装了 Docker ,打开您的终端并这样运行: curl https://apitable.github.io/install.sh | bash然后在您的浏览器中打开 http://localhost:80 访问它。 如果你想要设置你的本地开发环境,请阅读我们的 ?? 开发者指南 ?? 贡献 欢迎并感谢您为 APITable 作出贡献! 除了编写代码,您还有许多方法可以帮助 APITable 项目的茁壮成长。 你可以通过如下方式给项目提供帮助: 加入 Crowdin Translation Project ,帮助我们进行翻译 创建新 Issues 来反馈 BUG 或者优秀想法 关注我们的 Twitter 账号 完善、增添项目的 Documentation 当然还有无限欢迎的 Contributing Code 更多详情,请查看 贡献指南 。 这是一份入门指南,让您快速了解如何为 APITable 的茁壮成长贡献力量。 开发环境 在我们的 开发者指南 中学习如何设置您的本地开发环境。 Git 工作流基础 下面是通用的 APITable 工作流: 创建一个问题并描述您想要的功能 -> APITable 问题 派生此项目 -> Fork APITable 项目 创建您的功能分支(git checkout -b my-new-feature) 提交您的更改(git commit -am 'Add some features') 推送分支 (git push origin my-new-feature) 创建新的拉取请求 -> 通过派生创建拉取请求 工作约定 APITable 可适用这些通用的约定: 我们的 Git 分支模型是什么? Gitflow 如何在派生项目上进行合作? Github Flow 如何写入好的提交消息? Conventional Commits 我们的更新日志格式是什么? Keep Changelog 如何进行版本控制和标记? 语义化版本控制 Java 编码准则是什么? Java 编码准则 | Intellij IDEA 插件 TypeScript 编码准则是什么? -> TypeScript 风格指南 | ESLint 文档 帮助中心 ?? 开发者中心 REST API 文档 小部件 SDK (即将到来...) 脚本(即将到来...) ? 规划路线 未来的功能 重代码界面生成器 可嵌入的第三方文档组件 类似 SQL 的 DSL 作为一个 IdP Web 3 功能 ... 托管服务版和企业版提供高级功能 作为一个 IdP SAML 单点登录 审计 数据库备份 水印 欲了解更多信息,请通过 联系我们。 ? 参与进来 ? 我们为什么要创建 APITable 并开源? 我们认为 数据库是所有软件的基石。 我们相信,为每个人制作一个具有丰富和简单用户界面的可视化数据库,可以降低软件行业的难度,提高世界数字化的应用。 我们相信开源 APITable 可以 推动人类前进 我们正在招聘远程工作的开发者! 我们一直在为 APITable 寻找优秀人才: 全栈开发者: 有 React、NextJS、TypeScript、Spring Boot、Java、Terraform 的工作经验。并喜欢写高质量的代码,带有清晰的文档和单元测试。 后端开发者: 有 NestJS、TypeScript、Spring Boot、Java、SQL、Kubernetes、Terraform 的工作经验。并喜欢写高质量的代码,带有清晰的文档和单元测试。 前端开发者: 有 React、NextJS、TypeScript、WebPack 的工作经验。并喜欢写高质量的代码,带有清晰的文档和单元测试。 无论时间和条件如何,如果你想要加入 APITable 团队,请不要犹豫,将您的简历发送到 。 ? 截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 ? 许可协议 此仓库包含在 AGPL 下发布的 Open Source 版本的 APITable源代码。 如果你想运行你自己的 APITable 副本或对发展作出贡献,那这里就是你的地方。 详情请参阅 LICENSING 如果您想要在线使用 APITable ,那么您不需要运行此代码。 我们在 APITable 上提供一个托管的应用版本 适合全球加速。 使用AGPL-3.0授权。 由 APITable Ltd设计。 ⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 ↩ -
uniterm {card-default label="? 项目信息"} ? 项目名称:uniterm ? 开发语言:Go ⭐ Star数:130 | ? Fork数:30 ? 开源协议:Apache-2.0 ? 项目地址:https://gitee.com/ys-l/uniterm {/card-default} 项目介绍 一款轻量级一站式终端软件,支持 SSH、RDP、VNC、SFTP、数据库、K8S 等 30 余种协议。内置可自主执行的 AI Agent,规划并执行多轮 Shell 命令。 项目详情 项目截图 uniTerm 一款轻量级一站式终端软件,支持 SSH、RDP、VNC、SFTP、数据库、Kubernetes 等 30 余种协议内置可自主执行的 AI Agent,规划并执行多轮 Shell 命令 ? 软件首页 | ? 用户手册 | ? GitHub | ? Gitee English | 简体中文 目录 功能特性 支持的协议 界面截图 下载安装 使用流程 技术栈 从源码构建 项目结构 路线图 欢迎 Star 反馈与贡献 开源协议 功能特性 全功能终端 远程终端、本地 & 串口终端、文件传输、远程桌面、数据库、容器、服务器监控 —— 覆盖全部远程访问场景。 远程终端 — SSH / Telnet / Mosh / Raw TCP,密码/私钥认证;含 SSH 隧道端口转发(任意连接可经 SSH 跳板访问) 本地 & 串口终端 — PowerShell / CMD / Git Bash / WSL,以及串口连接(波特率等参数、本地回显) 文件传输 — SFTP / SCP / FTP / FTPS / SMB / WebDAV / S3 / Zmodem,双栏浏览、鼠标拖拽上传下载,SSH 内 rz/sz 远程桌面 — RDP(Windows 远程桌面)、VNC(Linux 远程控制)、SPICE(KVM/QEMU 虚拟机)、X11(X Window 图形界面转发) 数据库客户端 — MySQL / PostgreSQL / Oracle / SQL Server / rqlite / Redis / MongoDB / Elasticsearch 容器 — Kubernetes / Docker / Podman / nerdctl (containerd) / WSLC 服务器监控 — CPU/内存/磁盘/网络、进程、端口、网卡实时监控 AI 助理 自主执行的 AI Agent,独立规划并执行多轮 Shell 命令,直接在终端中完成复杂任务。 自主多轮执行 — AI Agent 能够自主规划、执行、观察结果并迭代,在多轮 Shell 命令中无需人工干预即可完成复杂操作。 大模型集成 — 侧边栏对话,兼容 Anthropic / OpenAI 协议,支持 Claude、GPT 及其他兼容模型。 灵活的执行模式 — 提供免确认、仅高危确认、写操作确认、全部确认四种模式,自主权由你掌控。 对话持久化 — 会话聊天记录按标签页保存,重新打开应用后历史记录仍然保留。 终端智能协作 — AI 命令直接在当前终端标签页中执行,支持固定到指定标签页或跟随当前激活终端。分屏中人与 AI 各司其职,同屏协作互不干扰。 智能补全 — SSH 终端输入时,根据历史命令和 AI 能力实时提供命令补全建议。 技能与命令 — 可复用的 Skill 工作流与 Prompt 命令模板,输入 / 即可挂载触发,AI 也可自行沉淀新技能。 个性化能力 连接管理、自由分屏、云端同步、主题定制 —— 你的终端由你掌控。 连接管理器 — 分组管理服务器连接,快速搜索、一键新建连接,支持批量操作。 自由分屏 — 将终端标签拖动到内容区即可自由分屏,任意组合成工作区,并可拖拽面板边缘调整大小与布局。 云端同步 — 基于 GitHub、GitLab、Gitee 去中心化个人私有仓库加密自动同步配置,无需担心数据丢失泄露,多设备无缝衔接、随处接续工作。 自定义快捷键 — 自由绑定各项操作的键盘快捷键,实现全键盘操作,双手不离键盘。 主题 — 28 款终端主题、3 款界面主题(暗色 / 深蓝 / 浅色)、自定义背景图片。 国际化 — 支持简中、繁中、英、日、韩、德、西、法、俄等 9 种语言界面。 支持的协议 类别协议说明终端SSH远程服务器命令行管理终端Telnet老旧设备、嵌入式系统的远程终端终端Mosh高延迟、断续网络下的服务器连接终端Serial串口终端连接,支持波特率等参数配置终端Raw TCP原始 TCP 控制台会话,直连主机端口收发原始字节流终端LocalPowerShell、CMD、Git Bash 等本地 Shell终端WSL通过本地终端打开已安装的 WSL 发行版(仅 Windows)文件传输SFTP服务器文件管理与传输文件传输SCP兼容旧版 SSH 服务器的降级方案,适用于不支持 SFTP 协议的服务器文件传输FTP / FTPS网站空间、NAS 文件传输文件传输SMBWindows 共享文件夹、NAS 文件访问文件传输WebDAVWebDAV 服务器文件管理文件传输S3兼容 Amazon S3 的对象存储文件传输ZmodemSSH 终端内 rz/sz 命令传输文件远程桌面RDPWindows 服务器远程桌面管理(仅 Windows)远程桌面VNCLinux 服务器远程控制远程桌面SPICEKVM/QEMU 虚拟机管理远程桌面X11X Window 图形界面转发数据库MySQL兼容 MySQL 协议:MySQL、MariaDB、TiDB 等数据库PostgreSQL兼容 PostgreSQL 协议:PostgreSQL、CockroachDB 等数据库Oracle Database通过纯 Go 驱动连接 Oracle Database数据库SQL Server通过纯 Go 驱动连接 SQL Server数据库rqlite基于 SQLite、Raft 共识的轻量分布式数据库数据库Redis内存键值数据库,可视化键值浏览与编辑数据库MongoDB文档数据库,树形浏览、查询编辑与行内编辑数据库Elasticsearch分布式搜索与分析引擎,支持索引与文档管理容器Kubernetes集群资源浏览与管理、Pod 日志与 exec 终端、性能指标容器Docker容器与镜像管理,支持本机或 SSH 远程主机容器Podman兼容 Docker 的容器引擎,支持本机或 SSH 远程主机容器nerdctl (containerd)containerd 容器管理,支持切换 namespace容器WSLCWindows WSL2 Container 运行时(仅 Windows)Oracle Database 支持基于纯 Go 驱动实现。uniTerm 不随安装包分发 Oracle Database、Oracle Instant Client、OJDBC、Wallet 文件或 Oracle 品牌素材;用户需自行确保其 Oracle 授权、凭据和数据库访问权限合规。 界面截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 项目截图 下载安装 前往 GitHub Releases 或 Gitee Releases 下载最新版本: Windows (amd64 / arm64): 安装包 uniterm-windows-*-installer-*.exe,或便携版 uniterm-windows-*-portable-*.zip macOS (Intel / Apple Silicon): 下载 uniterm-darwin-*-*.dmg Linux (amd64 / arm64): 下载 uniterm-linux-*-*.tar.gz、.deb 或 .rpm 关于 Windows 杀软误报:由于本开源软件未购买代码签名证书,未签名的可执行文件可能被部分杀毒引擎(如 Windows Defender)误报拦截。这是 Go/Wails 应用的已知问题(参见 wailsapp/wails#3308)。可在杀毒软件中为其添加排除规则以放行。请务必从 GitHub、Gitee 官方开源渠道下载软件。如仍担心存在病毒,可自行下载源代码在本地构建运行。包管理器安装 # Windows scoop bucket add uniterm https://github.com/ys-ll/scoop-uniterm && scoop install uniterm # macOS brew install --cask ys-ll/uniterm/uniterm # Linux (deb) curl -sLo uniterm.deb https://github.com/ys-ll/uniterm/releases/latest/download/uniterm-linux-amd64-*.deb sudo dpkg -i uniterm.deb # Linux (rpm) curl -sLo uniterm.rpm https://github.com/ys-ll/uniterm/releases/latest/download/uniterm-linux-amd64-*.rpm sudo rpm -i uniterm.rpm运行依赖 Windows: WebView2 运行时(Windows 10+ 已内置,更老的系统需安装) macOS: 无需额外依赖(使用系统自带 WebKit) Linux: libgtk-3-0 与 libwebkit2gtk-4.1-0(多数桌面发行版已自带) 使用流程 SSH 连接 在连接管理器中点击新建连接 填入主机、端口和认证信息(密码或私钥) 点击连接打开 SSH 终端会话 AI 助理 进入设置页面,配置你的 AI 大模型(API 地址、模型和密钥) 打开一个终端标签页(SSH 或本地) 打开 AI 侧边栏对话,输入需求 —— AI Agent 直接在终端中执行命令 SFTP 文件传输 在连接管理器中右键一个 SSH 连接 选择连接 SFTP 在双栏文件管理器中浏览、上传、下载或拖拽文件 技术栈 层级技术桌面框架Wails v3后端Go前端Vue 3 + Pinia + Element Plus终端引擎xterm.jsAI 协议Anthropic Messages API / OpenAI Chat Completions API从源码构建 需要 Go 1.26+、Node.js 20+ 和 wails3 CLI v3.0.0-beta.12(安装:go install github.com/wailsapp/wails/v3/cmd/wails3@v3.0.0-beta.12)。此外,macOS 需 Xcode Command Line Tools,Linux 需 libgtk-3-dev 与 libwebkit2gtk-4.1-dev。 git clone https://github.com/ys-ll/uniterm.git cd uniTerm cd frontend && npm install && cd .. wails3 dev # 开发模式运行 wails3 build # 构建生产版本项目结构 uniTerm/ ├── main.go # 入口文件 ├── app.go # Wails 绑定、LLM API 代理、SFTP API ├── app_*.go # 平台相关实现 ├── backend/ │ ├── session/ # SSH/Telnet/Serial/SFTP/数据库 会话管理 │ ├── database/ # SQL 执行、表结构查询、DSN 构建 │ ├── container/ # Docker/Podman/nerdctl 容器管理 │ ├── k8s/ # Kubernetes 集群管理 │ ├── store/ # 持久化配置(连接、AI、设置) │ ├── sync/ # 云端同步(GitHub/GitLab/Gitee) │ ├── update/ # 自动更新 │ ├── platform/ # 平台抽象层 │ └── log/ # 文件日志 ├── frontend/ │ └── src/ │ ├── components/ # Vue 组件 │ ├── composables/ # 终端组合式函数 │ ├── stores/ # Pinia 状态管理 │ ├── services/ # AI 代理循环、LLM 客户端 │ ├── i18n/ # 国际化翻译 │ ├── types/ # TypeScript 类型定义 │ ├── utils/ # 工具函数 │ └── vendor/ # 第三方库 ├── plugins/ # 插件目录 ├── docs/ # 文档 ├── Taskfile.yml # wails3 构建任务 └── build/ └── config.yml # 构建配置(应用信息、开发模式)路线图 已实现的协议 / 功能与后续计划见 ROADMAP.md,逐版本的更新记录见 CHANGELOG.md。 欢迎 Star 如果 uniTerm 对你有帮助,欢迎点一个 ⭐ Star,这是对项目最大的鼓励,也能让更多人发现它。 GitHub stars Gitee stars 反馈与贡献 本项目为纯个人业余兴趣项目,无商业化及接收赞助计划,欢迎志同道合的朋友一起交流,参与共建。 欢迎通过 GitHub Issues 提交问题、建议或使用反馈,也欢迎通过 Pull Request 贡献代码。由于终端访问场景与环境各异,作者难以覆盖所有场景的验证,如遇到相关问题,欢迎 fork 项目代码参与共建。本项目欢迎 vibe coding。 感谢以下朋友为 uniTerm 贡献代码与改进,以及每一位提交 issue 和建议的朋友,是你们让 uniTerm 变得更好 ❤️ @yuwei5380 @surenwuyuwuqiu @wangxufeng @coderstory @jiayunora @iCarrear @boltomli @kxn @windtear @Sunshow @feuvan @zhangsir1211 开源协议 Apache 2.0 ⬇️ 下载地址 {cloud type="default" title="网盘下载" url="https://gitee.com/ys-l/uniterm/repository/archive/master.zip"} 下载后请先检查文件完整性,如有问题请在评论区反馈