找到 11 篇与 开源项目 相关的结果
-
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=⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 -
mateclaw {card-default label="? 项目信息"} ? 项目名称:mateclaw ? 开发语言:None ⭐ Star数:532 | ? Fork数:249 ? 开源协议:Apache-2.0 ? 项目地址:https://gitee.com/mateos/mateclaw {/card-default} 项目介绍 ? MateClaw — 你的超级大脑,JAVA智能体 ,支持多 Agent 编排、Skills、Memory、Dream 、MCP协议与多渠道接入,底层由 Spring AI Alibaba 驱动。 项目详情 项目截图 太一(MateClaw) 你的超级大脑 可插拔 Agent Runtime · Native + DSH · Spring Boot 内核 GitHub 仓库 文档 在线演示 官网 Java 版本 Spring Boot Vue 最后提交 许可证 [官网] [在线演示] [文档] [English] 项目截图 v2.3.0(2026-09-20 发布)——持久目标的 JSON 验收与执行证据。 用户可配置 JSON 必需字段,将检查结果绑定到当前要求和不可变产物版本;同时加入团队成员受控干预、技能文档及文件夹上传,并修复 DSH 历史与输出预算、vLLM 推理内容和 SSE 分帧。 查看完整更新日志。别的 AI 助手是给一个人用的。MateClaw 是公司允许部署的那一个。 多用户工作空间。敏感操作走审批。完整审计日志。Spring Boot Actuator 健康监控。单个渠道挂掉不影响其他渠道的错误隔离。一个 JAR 包跑在自己的环境里;持久化数据由你掌控,任务所需内容只会发送到你主动配置的模型、渠道或工具服务。 底下是一套真正的 Agent Runtime。 员工不再焊死在一套推理循环上:可以用原生 StateGraph 运行 ReAct、Plan-and-Execute、Goal 与 Team Run,也可以通过认证 JSON-RPC 把 DeepSeek Harness 作为受管理的外部循环。两条路径最终进入同一套会话、工作空间边界、Tool Guard、事件投影与生命周期控制。 大多数 AI 工具一到厂商抽风那天就两手一摊。关一次标签页就忘了你是谁。给你一个聊天框,就敢叫产品。 MateClaw 是完整的一整套。 一次部署——推理、知识、记忆、工具、多渠道入口,从第一天就一起设计,不是事后拼接。主模型不可用时,系统会按优先级改由下一家健康供应商重新完成当前请求。 三件让它与众不同的事 1 · 模型挂了,AI 不挂 Key 过期。厂商返回 401。网络抖动。配额耗尽。 别的工具丢你一张红色错误卡。MateClaw 会按配置顺序尝试下一家健康供应商——DashScope、OpenAI、Anthropic、Gemini、DeepSeek、Kimi、Ollama、LM Studio、MLX 等内置或 OpenAI 兼容供应商——尽可能恢复当前请求;仅当可用链路全部失败时才返回错误。内置的 Provider Health Tracker 会把连续失败的供应商放进冷却窗口,避免每一轮对话都白白撞壁。 你不用写重试脚本。在 设置 → 模型 里把供应商拖成你想要的优先顺序,健康面板实时亮起一排绿点——请求绕着故障流过去。 2 · 知识会自己长出链接 上传 PDF、一批 markdown、抓下来的网页——原始材料进去。 MateClaw 的 LLM Wiki 把它消化成结构化页面,页面之间自己长出 [[链接]],生成内容保留可追踪引用。点开引用抽屉,就能看到对应的原始 chunk;页面与回答中的引用可以回到来源核对。 这是仓库和图书馆的区别。 3 · 一个产品,五个入口 入口它是什么Web 控制台完整的管理后台——数字员工、模型、技能、知识、安全、定时任务、运行时控制台(看见每位员工正在干什么、一键回收)桌面端Electron + 内嵌 JRE 21,双击即用,无需装 Java网页嵌入式聊天一个 `` 标签就能嵌进任何网站IM 渠道钉钉 · 飞书 · 企业微信 · 微信 · Telegram · Discord · QQ · Slack插件 SDKJava 模块,供第三方扩展能力包同一个大脑。同一份记忆。同一套工具。不同的门。 $0 · 无 token 计费。无座位收费。你的服务器,你的数据,你的 Key。 盒子里有什么 数字员工,不是聊天机器人 你雇佣员工,不是开聊天框。每位有角色、目标、背景故事、运行时、像素艺术头像与专属配色——6 个内置模板(通用助手 · 产品助理 · 研究分析师 · 客服助理 · 数据分析师 · 代码审查员)开箱可用。即使更换执行引擎,员工身份和治理边界仍保持不变。 Agent Runtime:Native 或 DSH(2.2.0+) AgentRuntimeProvider contract 把员工与实际执行回合的引擎分开。Native Runtime 在 MateClaw 内运行 ReAct、Plan-and-Execute、Persistent Goal 与 Team Run;DSH Runtime 把 dsh-jsonrpc-agent 作为认证子进程管理,并将思考、文本、工具调用、用量、完成与取消统一映射为 runtime event。DSH 掌管外部 Agent loop,MateClaw 继续掌管 session、workspace、凭证、工具、审批、消息和 UI 投影。启动前会校验 runtime 可用性与能力;控制台可完成 DSH 的安装、配置、校验、连接测试和启停。配置 DeepSeek Harness → 持久长任务:检查点、重启、继续(2.2.0+) Persistent Goal 把需要数小时的工作拆成有界、可恢复的执行段。数据库会保存目标清单、continuation 状态、attempt、冷却、lease,以及员工忙碌期间已经接收的用户输入。单后端实例重启后,supervisor 会先核对被中断的 attempt,读取持久检查点和已有产物,再调度下一段安全工作,不要求用户重新描述任务。 对于写文件的任务,应要求员工维护进度账本、以小块追加可验证内容、恢复时先检查文件尾部,并且只有在可复现验收全部通过后才完成 Goal。运行时不承诺任意外部副作用严格一次;付款、发送、发布和破坏性操作仍需使用服务商幂等键或人工复核。运行并验证持久目标 → 提示词模板:“第一步创建持续目标;把计划和进度保存在工作区;按小检查点写入;发生错误或重启后从已有证据继续;只有每条验收标准都有可验证证据时才调用 completeGoal。”Team Run(2.1.0+) 一次请求对应一个持久化的 Team Run。稳定的 runId 串起用户目标、任务 DAG、成员执行、最终汇总与交付物。Chat 是成果交付面,Agents Live 按运行聚合成员并展示实时状态,Teams 管理历史与治理;三处读取同一份服务端投影。成员子会话不再挤进普通会话列表,摘要和文件优先展示,任务、证据、审批与只读成员记录按需下钻。底层继续使用 2.0 的共享任务板,保留依赖编排、并行派发、前置结果传递、执行租约、取消中断和人工审批卡点。 知识与记忆 LLM Wiki — 原始材料消化成有链接、带引用的结构化页面;热点缓存自动注入到员工的 system prompt。加工器引擎(1.3.0+)把 Wiki 从"搜索索引"升级为"处理流水线" 工作区记忆 — AGENTS.md / SOUL.md / PROFILE.md / MEMORY.md / 每日笔记 记忆生命周期 — 对话后自动提取 · 定时整理 · Dreaming 工作流。工作流也可以通过 write_memory step 直接写进员工的 MEMORY.md 技能 · MCP · ACP — 三种"接外部能力"的方式 SKILL.md 技能包 — 一份 manifest + prompt + 工具列表 + LESSONS.md。2.1 可通过对话反思与跨会话重复请求挖掘形成可复用改进,并以候选晋升、受约束自动绑定、curator 治理、来源策略、快照和恢复点保证过程可观察、按工作空间隔离且可回滚;所有自动能力均由独立开关控制。另有 8 个起步模板、5 步创作向导和安装前 Pre-flight 检查 MCP — stdio / SSE / Streamable HTTP 三种传输,接入任意外部工具服务器。每位员工独立绑定(1.3.0+)——一位员工装的工具不会渗到其他人的工具栏里 ACP — 把 Claude Code、Codex 这种顶级编码 Agent 以"员工"身份接入,桥接成技能卡 + 包装工具 Tool Guard — RBAC + 审批流 + 文件路径保护。能力必须有边界 业务流程编排(1.3.0+) 工作流(Workflow) — 把多位员工 + 系统动作(审批 / 渠道分发 / 写记忆)按线性 step DSL 编排成一条可发布、可触发、可重放的业务流程。7 种 step mode(sequential / fan_out / collect / conditional / await_approval / dispatch_channel / write_memory)。JSON-first 编辑(Monaco + JSON schema + Pebble 静态检查),或者用一句话生成草稿 触发器(Trigger) — 把"系统里发生的事"自动接到工作流或员工对话上。6 种 pattern type(cron / webhook / channel_message / agent_lifecycle / content_match / workflow_completion)。事件治理默认开:去重、per-trigger 限速、bot 自循环过滤、A→B→A 递归保护、未知 pattern fail-closed Wiki 加工器 — Wiki 不再只是被动检索。用户自定义模板对原料或现有页面跑模板,跨原料 map-reduce 聚合,reverse-citation 绑定到源 chunk,JSON 输出 + 可选 JSON Schema,每个模板独立选模型 你看得见每位员工正在干什么 Admin 运行时控制台(后台 → 系统 → 运行时)——谁在跑、当前回合由哪个 runtime provider 承载、跑到哪一步、占多少 token,卡住可一键回收。Native 与 DSH 事件进入同一套思考 / 工具 / 回答投影,完成、失败、用量和取消保持一致的生命周期语义。SSE 每事件 ID 支持安全重连,Team Run 将成员工作聚合到同一次运行下。 多模态创作 语音合成 · 语音识别 · 图片 · 音乐 · 视频 · 3D。一等公民,不是附加插件。多模态旁路(1.3.0+)让纯文本主模型遇到图片附件时自动调用配置好的视觉模型转描述,主对话保持便宜。图像编辑也到位:用 msg:: 引用会话里更早的某张图,让模型改色、改风格。4 个文档生成工具(DocxRenderTool / XlsxRenderTool / PptxRenderTool / PdfRenderTool)在 JVM 内把 Markdown 直接渲染成 Office 文件——不 fork 子进程、不依赖 npm、不需要装 Office。 内容工作室(1.8.0+) 一个招牌场景,不是工具——预置的「内容工作室」员工把一句话变成可发布成品:选题 → 搜集 → 成文 → 配图 → 去 AI 化 → 排版 → 交付。微信公众号(公众号)文章以内联样式 HTML 进入草稿箱,正文图自动上传到微信;小红书笔记打包成 ≥3 张竖版 3:4 卡片并在线预览。去 AI 化围绕一个可度量的 AI 痕迹评分运行;每次交付都经过合规扫描,并记入按选题指纹去重的内容日历。 企业就绪 RBAC + JWT。Personal Access Token 给无人值守脚本和 CI 使用。Webhook 出站 HMAC-SHA-256 签名。Cron 分布式锁避免多实例重复执行。完整审计事件流。Flyway 管理数据库 schema。一个 JAR 交付。开发环境可用 H2;公开 Docker 栈默认使用 PostgreSQL 16,同时保留 MySQL profile,Kingbase 驱动为按需启用。 AI 正在变成基础设施 模型供应商会限流,网络会抖动,Key 会过期,服务也可能临时不可用。把所有 AI 能力押在单一供应商上,会让上游故障直接变成自己的业务故障。 当 AI 进入生产环境,稳定的一层既不应绑定一家模型供应商,也不应绑定一套 Agent loop。MateClaw 用供应商优先级、健康追踪、冷却与故障转移吸收模型侧不确定性,再把 Native 与外部执行引擎收进同一份受治理的 Agent Runtime contract。 MateClaw 就是那一层——用 Spring Boot 方式盖的。 为什么选 MateClaw MateClawOpenClawHermes AgentClaude CodeCursor多厂商失败转移Chain + 健康追踪 + 冷却切换供应商(改配置)内置编排重试仅 Anthropic单模型知识消化式加工Wiki + 页面级引用溯源Canvas + 记忆Skills Hub + 记忆—代码索引多用户管理RBAC + 审批流 + 审计 + 运行时控制台配置文件优先单用户 CLI企业版团队版能力扩展接口技能 (LESSONS) + MCP + ACP——MCPMCP用户触点Web 管理台 + 桌面 + 嵌入 + SDK + 8 IM25+ 聊天渠道15+ 渠道(CLI 为主)3 IM(预览)仅 IDE技术栈Java(Spring Boot)TypeScriptPythonTypeScriptElectron/TS许可 / 定价Apache 2.0 · 免费MIT · 免费MIT · 免费闭源 · $20–200/月闭源 · $0–200/月OpenClaw 和 Hermes Agent 是优秀的个人 AI 平台——如果你是一个人、一台笔记本、习惯从 CLI 搭自己的 agent、所有东西都靠手工配置文件调优,选它们没问题。两家的社区规模今天都大于 MateClaw。 MateClaw 是那个给团队用的版本。 数字员工、模型与工具都纳入权限和工作空间边界。危险动作可暂停等待审批,关键操作进入审计事件流。Admin 运行时控制台集中展示正在执行的员工与供应商状态,卡住时可回收。底座是 Spring Boot,适合并入已有 Java 服务体系。 同一套"完整一整套"哲学,不同的重心。 快速开始 # 后端 cd mateclaw-server mvn spring-boot:run # http://localhost:18088 # 前端 cd mateclaw-ui npm install && npm run dev # http://localhost:5173默认登录:admin / admin123 Docker 部署 cp .env.example .env docker compose up -d # http://localhost:18080桌面端 从 GitHub Releases 下载安装包。内嵌 JRE 21,无需额外装 Java。 架构全景 项目截图 技术架构 项目截图 项目结构 mateclaw/ ├── mateclaw-server/ Spring Boot 3.5 后端(Agent Runtime contract · Native StateGraph + DSH) ├── mateclaw-ui/ Vue 3 + TypeScript 管理 SPA(构建产物打进后端 JAR) ├── mateclaw-desktop/ Electron 桌面端(本地内嵌 / 远程集中双模式) ├── mateclaw-webchat/ 网页嵌入式聊天组件(UMD / ES bundle) ├── mateclaw-plugin-api/ 第三方能力插件的 Java SDK ├── mateclaw-plugin-sample/ 参考插件实现 ├── mateclaw-plugin-mem0/ 可选 Mem0 记忆 Provider 插件 ├── mateclaw-plugin-search-sample/ 搜索 Provider SPI 示例 ├── docker-compose.yml └── .env.example桌面端安装包通过 GitHub Releases 分发,内嵌 JRE 21——无需安装 Java。 技术栈 层次技术后端Spring Boot 3.5 · Spring AI Alibaba 1.1 · MyBatis Plus · FlywayAgent RuntimeAgentRuntimeProvider contract · Native StateGraph(ReAct + Plan-Execute)· 受管理的 DSH JSON-RPC runtime · 统一事件 / 生命周期 / 用量 · Tool Guard业务编排工作流(7 step mode · Pebble DSL)· 触发器(6 pattern type · 事件治理)· Wiki 加工器(1.3.0+)能力扩展SKILL.md 包 · MCP(stdio / SSE / HTTP · per-agent 绑定)· ACP 桥接(Claude Code / Codex)数据库H2(开发)· PostgreSQL 16(Docker 默认)· MySQL 8.0+(支持)· Kingbase(按需驱动)认证Spring Security + JWT前端Vue 3 · TypeScript · Vite · Element Plus · TailwindCSS 4桌面端Electron · electron-updater · 内嵌 JRE 21WebchatVite library 模式 · UMD + ES bundle文档 完整文档 claw.mate.vip/docs——安装、架构、各子系统、API 参考。 路线图 v2.3.0(2026-09-20 发布)——持久目标的 JSON 验收与执行证据。 用户可配置 JSON 必需字段,将检查结果绑定到当前要求和不可变产物版本;同时加入团队成员受控干预、技能文档及文件夹上传,并修复 DSH 历史与输出预算、vLLM 推理内容和 SSE 分帧。 托管 JSON 验收:由用户定义必需字段;服务端保存不可变 JSON 版本,按当前要求修订和槽位代次绑定检查,完成目标时重新校验。 执行证据:默认观察模式记录执行及产物;按需版本诊断和 JSON 字段诊断不等于目标验收通过。 团队干预:在团队详情中处理成员工具审批、拒绝或补充反馈,保留成员会话治理和执行互斥。 技能上传:支持文档、二进制文件及文件夹,保留目录结构;单文件最多 10 MiB。 可靠性修复:DSH 有界历史及输出 token、vLLM 思考开关、SSE 换行兼容、电子表格提取限制和工具超时。 ↗ v2.3.0 v2.2.0(2026-08-29 发布) —— 从一套内置推理循环走向可插拔、可恢复的 Agent Runtime: Runtime contract —— provider registry、session factory、能力校验、统一事件流、生命周期、用量与 UI 投影,让员工身份与执行引擎解耦 DeepSeek Harness runtime —— 受管理的安装与配置、认证 JSON-RPC 进程桥、Cordis composition、可取消流、子进程环境隔离,以及由宿主治理的工具派发 持久长任务 —— 有界 Goal segment、持久化 continuation / 输入队列、attempt、冷却、重试、租约、重启恢复和显式暂停 / 恢复语义 Agent 互操作 —— A2A 入站与出站、Agent Card、JSON-RPC / SSE task、认证、幂等与受控网络边界 Runtime 加固 —— 工作空间归属进一步收口,Team Run 恢复和交付门更可靠,长文本及审批、停止、恢复期间的输入处理更一致 完整内容见 v2.2.0 更新记录。 v2.1.0(2026-08-15 发布) —— 从“一块摆满任务的看板”到一次可治理的团队运行: 统一 Team Run —— 一个 runId 串起请求、任务 DAG、成员会话、事件、最终汇总与交付物;Chat 交付成果,Agents 观察实时执行,Teams 管理历史与治理 Skill 自进化闭环 —— 对话反思、重复请求挖掘、候选晋升、受约束自动绑定、curator 治理、快照与恢复;默认保守、显式控制并按工作空间隔离 可回放执行 —— 实时提取内联 ``,每轮推理按发生顺序展示实际耗时,保留被后续工具调用替代的阶段旁白,并可导出线性 trajectory 能力进入日常运营 —— 主动 IM 推送、Cron 定向投递、模型级上下文窗口、渐进式工具披露,以及基于实际工具调用结果的行动完成检查 可靠性加固 —— 浏览器 ref / 导航 / 等待、WebChat 与 SSE 清理及上游空闲超时、飞书进度、Qwen3-ASR HTTP、会话批量删除、文件按日分区和 64 位 ID 精度保护 完整内容见 v2.1.0 更新记录。 v2.0.0(2026-07-31 发布) —— 从“一个能干活的人”到“一支能协作的队伍”:Agent 团队成为常设编制,围绕共享任务板工作: Agent 团队与共享任务板 — 团队 / 角色(lead · member · reviewer)、八状态看板、blockedBy 依赖编排、成员级并行派发、前置结果自动传递、结果通报唤醒 Lead;Teams 页事件驱动实时看板 + 活动横幅 + 任务时间线 + 交付物下载 + 手动投任务 为长任务加固的执行链 — 执行租约 + 运行期心跳防双重执行、取消即真实中断、in_review 审批卡点、失败/过期可重试 Plan-Execute 计划整体移交任务板 — 步骤变任务、依赖变并行、停靠恢复门确定性汇总 工作空间隔离全面收口 — 渠道会话 id 编入渠道标识、同名技能跨工作空间共存且运行时按会话工作空间解析 渠道体验 — 全渠道魔法命令(/new /clear /status /stop /model /help)、企业微信事件驱动进度气泡(实时工具轨迹 + 分阶段滚动叙述) 会话回退 / 重新生成服务端语义 · 自动批准未命中可解释(原因码落审计行 + 一键补策略) · LLM 错误恢复策略化(过载/限流分治 · Retry-After 回馈退避 · provider TTL 回收) 外加:聊天附件在线预览(pdf / docx / xlsx / html / 文本)、SKILL.md 单一事实源 + 捆绑文件控制台管理、Mem0 可选插件记忆 provider、知识图谱关系模式白名单。 完整故事见 v2.0.0 release notes。 v1.8.0(2026-07-12 发布) — 员工转向对外、干完一整件活:内容工作室——第一个完全用 MateClaw 自身原子能力端到端搭起来的招牌场景: 内容工作室——一句话到可发布成品 — 预置「内容工作室」员工跑通 选题 → 搜集 → 成文 → 配图 → 去 AI 化 → 排版 → 交付。微信公众号(公众号) 图文文章(内联样式 HTML → 草稿箱)与 小红书 以图为主图文笔记(≥3 张竖版 3:4 卡片 + 在线预览)首批一等公民 可度量的去 AI 化 — 启发式 AI 痕迹评分(无 LLM、确定性)驱动 检测 → 改写 → 复检 闭环,硬上限 3 轮 为长期投产而加固的发布链 — 正文图上传进微信(不再外链发布即裂)、AES-GCM 加密密钥、服务复用 + token 持久化、重试 + 中文错误提示、兜底封面;草稿箱优先,发表走审批 会去重、会记账的内容日历 — 每次交付都合规扫描 + 自动落台账、选题指纹防重复选题、只读内容日历页展示草稿/已打包/已发布/失败 浏览器 Agent 按引用去看 — 无障碍树 ref 快照 + 按 ref 交互(点元素而非像素)、真实浏览器隐私护栏、受控 CDP 逃生舱 注意力更聚焦、循环更收得住 — 注意力锚定与环境感知(MCP 工具溯源 + skill 约束固定 + 事件通知)、工具调用循环护栏、改动后校验提醒 外加:一次快加载优化(初始加载 ↓约 78%)、聊天上下文占用面板、跨知识库 wikilink、MCP 进度通知、火山方舟供应商,以及公开 Docker 栈切到 PostgreSQL 16。 完整故事见 v1.8.0 release notes。 v1.7.0(2026-07-04 发布) — 一次生产化加固:把它放进真正的协作里之后,那些看不见、收不拢、够不着、装不下、连不通的地方全补上: 审批三条链路彻底闭环 — 工作流 await_approval 真的推到渠道并 resolve→恢复执行、WebChat(API-Key)渠道能批准/拒绝并重放、飞书/企微点卡片直接 resolve 工作流审批 长任务看得见 — 常驻「运行总览」侧栏 + 本轮 Token 明细(缓存命中/未命中/写入 + 推理拆分)+ 子 Agent 成本向上滚加 + 生成文件一键下载 装得下真实模型窗口 — 本地模型上下文窗口探测、prefix 注入统一 Token 预算、小上下文降级、工具 schema 预算门——不再被"猜个 32K"坑到预检拒绝或悄悄截断 开放出去 — 知识库 / Deep Research 开放 API(API-Key + 限流 + SSE)、插件化搜索 Provider SPI、MCP 身份透传(把认证用户身份带给 STDIO MCP) 够得着更远 — 桌面端本地内嵌 / 远程集中部署双模式(mateclaw-desktop 源码开放)+ 局域网部署模式放开受控内网访问 运营数据一键导出 — Dashboard 9 表 Excel + CLI 命令行离线导出 完整故事见 v1.7.0 release notes。 v1.6.0(2026-06-22 发布) — 让自驱的数字员工更快、更会看、更易嵌入:技能两段式载入 + prefix 压缩(首字节更快)· execute_code 原生沙箱代码执行 · 图片跨轮次留存 + image_analyze · 可嵌入/无头 webchat 按 endUserId 隔离记忆 · 真正可读的 Wiki(阅读与管理分离 · 统一 Sources 标签 · 可点击 [[wikilinks]])· 高负载更稳(MCP 自愈 · 工具调用恢复 · 计划证据闸门)。完整故事见 v1.6.0 release notes。 v1.5.0(2026-06-04 发布) — Goal 可勾选清单(模糊评分 → 逐项打勾)· Wiki 自维护([[wikilinks]] · 事实层/经验层 · pageType 模板与权限 · 知识库流水线 · 本地目录接入)· 按拥有者隔离记忆(owner_key + 可见域 + endUserId 透传)· 每员工绑定主知识库 · 偏好 provider 驱动选型。完整故事见 v1.5.0 release notes。 v1.4.0(2026-05-23 发布) — 持续目标(锁定目标,每轮自评)· 子员工委派树(最深 3 层 · 同步 / 并行 / 异步 · 一句话组队)· 工具/技能渐进式披露 · 工作空间 RBAC(Owner / Admin / Member / Viewer)· 飞书一等公民(交互卡 / 审批卡 / 流式卡 · ...(内容过长,已截断,更多详情请访问项目地址) ⬇️ 下载地址 下载后请先检查文件完整性,如有问题请在评论区反馈 -
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"} 下载后请先检查文件完整性,如有问题请在评论区反馈 -
nop-entropy {card-default label="? 项目信息"} ? 项目名称:nop-entropy ? 开发语言:Java ⭐ Star数:1141 | ? Fork数:392 ? 开源协议:未知 ? 项目地址:https://gitee.com/canonical-entropy/nop-entropy {/card-default} 项目介绍 Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用 项目详情 [[English]](README.en.md) [[Tutorial]](./docs/tutorial/tutorial_en.md) [[开发示例]](./docs/tutorial/tutorial.md) [[介绍和答疑视频]](https://www.bilibili.com/video/BV1u84y1w7kX/) Nop Platform 2.0 ! ! star Ask DeepWiki ! 介绍 可逆计算:下一代软件构造理论 让演化可编程:XLang 与可逆计算的结构化范式 Nop is nOt Programming(非编程) Nop Platform 2.0 is a next-generation low-code development platform built from scratch based on the principles of reversible computation, adopting a language-oriented programming paradigm. It includes a suite of fully designed engines such as a GraphQL engine, ORM engine, workflow engine, reporting engine, rule engine, and batch processing engine, all developed from scratch based on new principles. It automatically generates GraphQL/REST/gRPC services according to Excel data models, allowing for customized development without modifying the source code of the basic product. It supports native compilation with GraalVM, and is free for commercial use by small and medium-sized enterprises. The underlying architecture of the Nop platform does not utilize third-party frameworks such as Spring. Instead, it has been redesigned and implemented based on new software construction principles, greatly reducing the complexity of the framework’s internal structure while significantly enhancing its flexibility, scalability, and performance. Its design goal is to explore next-generation software production technologies, laying the technical foundation for intelligent software production in the AI era. Nop Platform 2.0是基于可逆计算原理从零开始构建的采用面向语言编程范式的下一代低代码开发平台。包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计,根据Excel数据模型自动生成GraphQL/REST/gRPC服务,定制化开发无需修改基础产品源码,支持GraalVM原生编译,中小企业可以免费商用。 Nop平台的底层没有使用Spring等第三方框架,而是基于新的软件构造原理重新设计并实现,极大降低了框架内在结构的复杂性,同时大幅提升框架的灵活性、可扩展性和性能。它的设计目标是探索下一代软件生产技术,为AI时代的软件智能生产奠定技术基础 nop-entropy是Nop平台的后端部分。它采用Java语言实现,不依赖第三方框架,可以和Quarkus、Spring或者Solon框架集成在一起使用。 nop-entropy支持GraalVM技术,可以借助于Quarkus 或者SpringNative 框架编译为原生可执行程序,运行时不需要安装JDK,且启动速度提升数十倍。 nop-entropy的设计目标是成为简单易用的领域语言工作台(Domain Language Workbench) 。在Nop平台中,我们一般并不直接使用通用的程序语言如Java来表达业务逻辑,而是先设计一个DSL语言,然后再用DSL来表达业务。通过增加简单的元数据定义,就可以自动得到对应的解析器、验证器、IDE插件、调试工具等,并自动为DSL领域语言增加模块分解、差量定制、元编程等通用语言特性。 在这一点上,它类似于Jetbrains公司的MPS产品 ,只是它的设计原理和技术实现路径与MPS有着本质性差别。 nop-entropy采用云原生设计,内置分布式事务和多租户支持,可以单机运行,也可以作为分布式集群运行,可以提供在线的API服务,也可以将针对单个业务对象的在线服务自动包装为针对批处理文件的批处理任务。对于大多数业务应用场景均提供相应的模型支持,只需少量配置即可完成主要功能,大大降低对手工编码的需求。 nop-entropy在开发期可以作为支持增量式开发的低代码平台,自动生成各类代码以及相关文档,在运行期可以作为* 面向最终用户的无代码平台的支撑技术,允许客户在线调整业务模块功能,以所见即所得的方式进行产品迭代。Nop平台可以作为一个非常精巧的通用SAAS平台底座*,基于它只需要做少量包装即可实现一个完善的针对特定领域的SAAS平台。 目前Nop平台开源的部分主要包含XLang语言的实现,以及ORM、依赖注入容器(IoC)、分布式配置(Config)、GraphQLEngine、报表引擎(Report Engine)、任务调度引擎(Job Scheduler)、批处理引擎(Batch Processing Engine)、规则引擎(Rule Engine)、工作流引擎(Workflow Engine)、流处理引擎(Stream Engine)以及AI大模型集成(Gateway/Agent/RAG/MCP)等基础框架,后续规划主要为商业智能(BI)等业务开发常用部分。 Nop Platform 2.0的代码是由Entropy Platform 1.0重构而来 最近增加了对国产框架solon的集成,参见nop-solon,打包后的jar包大小相比与Spring和Quarkus要降低10多M。开发进度: 模块说明进度nop-api-supportAPI接口的支持类已完成nop-codegen数据驱动的代码生成器已完成nop-antlrAntlr的模型驱动改造已完成nop-core虚拟文件系统、反射机制、XML/JSON解析已完成nop-ioc声明式IoC容器已完成nop-config动态配置中心已完成nop-xlangXLang脚本语言和模板语言已完成nop-daoJDBC访问、事务、数据库方言已完成nop-orm下一代ORM引擎已完成nop-graphql下一代GraphQL引擎已完成nop-rpc分布式RPC调用已完成nop-ooxmlOffice文件的解析和生成,取代POI。Word报表模板已完成nop-report中国式报表引擎已完成nop-rule规则引擎已完成nop-autotest模型驱动的自动化测试框架已完成nop-idea-pluginIDEA开发插件,支持语法提示、文件跳转、断点调试基本可用nop-cli将代码生成器、文件监听等功能封装为命令行工具基本可用nop-cluster分布式集群支持50%nop-tcc分布式事务已完成nop-dyn在线设计表单和数据模型、服务函数75%nop-workflow下一代工作流引擎65%nop-task下一代逻辑流编排基本可用nop-job分布式任务调度50%nop-batch下一代批处理引擎基本可用nop-messageKafka/Pulsar消息队列封装20%nop-dbtool数据库导入导出、数据结构比较、同步工具初步实现nop-metadata元数据管理、数据治理、数据质量40%nop-nosqlRedis封装已完成nop-stream声明式图模型驱动的流处理引擎,可集成Flink50%nop-search基于Lucene的全文检索引擎25%nop-networkTCP/IP服务处理框架、RPC通信40%nop-datavBI数据分析0%nop-aiAI大模型集成:MCP、Gateway、Agent、RAG45%nop-jsGraalVM Js引擎封装,在Java中运行JS50%nop-integration邮件、短信、文件服务等外部服务封装30%nop-auth用户权限管理已完成nop-sys系统配置管理已完成源码地址 gitee: https://gitee.com/canonical-entropy/nop-entropy gitcode:https://gitcode.com/canonical-entropy/nop-entropy github: https://github.com/entropy-cloud/nop-entropy 设计原理 可逆计算:下一代软件构造理论 NOP:下一代软件生产范式 低代码平台需要什么样的ORM引擎? 写给程序员的可逆计算理论辨析 写给程序员的可逆计算理论辨析补遗 让演化可编程:XLang 与可逆计算的结构化范式, 这一篇是AI整理的介绍文章,推荐阅读 快速开始 开发示例 介绍和答疑视频 开发文档导引 与若依Ruoyi框架集成 更多介绍视频 软件架构 nop-entropy没有使用Spring框架,所有模块均从零开始采用模型驱动的方式研发(框架本身的很多代码也是根据模型生成并可以通过声明式方式进行定制调整的)。原则上说,nop-entropy可以运行在任何支持REST服务标准的微服务框架之上。目前,我们主要是支持Quarkus框架以及Spring框架的集成。 Quarkus是Redhat公司所开源的新一代云原生微服务框架,它的开发体验以及针对GraalVM Native编译的成熟程度都明显优于Spring框架。借助于Quarkus框架,我们既可以将应用程序编译为单一的uber jar(通过java -jar指令来运行),也可以将程序编译为exe可执行程序,在运行时不需要安装JDK,而且启动速度提升数十倍。目前,nop-entropy的开发调试主要是基于Quarkus框架进行,所以对Spring框架的支持可能会存在一些小问题。 Nop平台的前端代码在nop-chaos项目中,nop-chaos的打包结果被包装为以下Java模块。 nop-web-site: 前端主页面框架的打包结果 nop-web-amis-editor: 前端使用的AMIS可视化编辑器的打包结果 在一般的业务开发中我们只会编写JSON和少量JS文件,不需要重新编译nop-chaos项目。 安装教程 环境准备: JDK 17+、Maven 3.9.3+、Git git clone https://gitee.com/canonical-entropy/nop-entropy.git cd nop-entropy mvn install -DskipTests -Dquarkus.package.type=uber-jar注意: 编译运行需要JDK17以上版本,不支持JDK8, 在PowerShell中执行的时候需要用引号将参数包裹起来 据反馈,有些JDK版本编译会报错,如jdk:17.0.9-graal会报错IndexOutOfBound异常,所以如果编译出现问题时可以先尝试一下OpenJDK。 mvn clean install "-DskipTests" "-Dquarkus.package.type=uber-jar"quarkus.package.type参数是quarkus框架所识别的一个参数,指定它为uber-jar将会把nop-quarkus-demo等项目打包成一个包含所有依赖类的单一jar包。可以通过java -jar XXX-runner.jar的方式直接运行。 Windows目录名长度限制 避免把仓库放在深层“Downloads”路径(如 C:\Users\\Downloads\...)。建议使用短路径,如 D:\nop 或 C:\nop,尽量让项目的完整绝对路径保持较短。 本仓库的 2.0.0-SNAPSHOT 模块需要先在本地构建安装,不能从公共仓库下载。请先在仓库根目录执行一次完整安装: ./mvnw clean install "-DskipTests" "-T 1C"若看到“Could not resolve dependencies … (absent)”等错误,通常是因为未进行本地安装或之前的失败被缓存。可尝试: ./mvnw clean install "-DskipTests" "-U"仍不行时,清理本地缓存后重试(默认仓库:C:\Users\\.m2\repository): Remove-Item -Recurse -Force "$env:USERPROFILE\.m2\repository\io\github\entropy-cloud"; ./mvnw clean install "-DskipTests"PowerShell乱码问题解决 可以将PowerShell的编码设置为UTF8 $OutputEncoding = [Console]::OutputEncoding = [Text.Encoding]::UTF8目前已经升级到quarkus3.0版本,用低版本maven运行nop-auth-app等模块可能会失败。建议升级到maven 3.9.3版本,或者使用nop-entropy跟目录下的mvnw指令,它会自动下载并使用maven 3.9.3。 nop-idea-plugin nop-idea-plugin是IDEA的插件项目,必须采用Gradle编译。 cd nop-idea-plugin gradlew buildPlugin目前使用的idea打包插件不支持高版本gradle。gradlew会自动下载所需的gradle版本,目前使用的是7.5.1 如果想加快gradle下载速度,可以gradle-wrapper.properties中换成 distributionUrl=https://mirrors.cloud.tencent.com/gradle/gradle-7.5.1-bin.zip编译出来的插件存放在build/distributions目录下。参见插件的安装和使用。 使用说明 平台内置了一个演示程序,使用H2内存数据库,可以直接启动运行 cd nop-demo/nop-quarkus-demo/target java -Dquarkus.profile=dev -jar nop-quarkus-demo-2.0.0-SNAPSHOT-runner.jar如果不指定profile=dev,则会以prod模式启动。prod模式下需要配置application.yaml中的数据库连接,缺省使用本机的MySQL数据库 访问链接 http://localhost:8080, 用户名:nop, 密码:123 在IDEA中可以调试运行nop-quarks-demo项目中的QuarksDemoMain类。 quarkus框架在开发期提供了如下调试工具, http://localhost:8080/q/dev http://localhost:8080/q/graphql-ui在graphql-ui工具中可以查看所有后端服务函数的定义和参数。 完整的开发示例,参见tutorial 框架集成 nop-entropy不依赖于spring或者quarkus框架,也不依赖于特定数据库,因此它很容易集成在第三方应用中使用。 核心引擎的功能并不依赖于数据库,可以以纯内存的方式运行。所有存储相关的代码都已经剥离到独立的dao模块中,例如nop-auth-dao,nop-sys-dao等。1.作为增量式代码生成工具使用:maven打包时可以读取Excel模型文件,应用指定的模板目录,以增量化的方式生成代码。参见codegen.md 2.为已有的XML/JSON/YAML格式的配置文件、领域模型文件提供可逆计算支持:为模型文件增加动态分解、合并、产品化定制机制,对应用层完全透明,对于引擎层只需要编写一个自定义的模型文件加载器。参见delta-loader.md 为开发领域特定语言(DSL)提供支持:只需要定义xdef元模型文件即可获得语法提示、链接跳转、断点调试等IDE支持。后续会提供可视化设计器定制支持。参见idea-plugin.md 作为模型驱动的GraphQL引擎使用:根据Excel模型自动生成GraphQL服务,支持复杂主子表的增删改查。参见graphql.md 作为报表引擎使用:只需要在Word或者Excel文件中增加少量标注即可作为报表模板运行,动态生成复杂的中国式报表。参见report.md 作为工作流引擎使用:与定时调度引擎相结合,支持人工操作的审批工作流,也支持类似airflow的分布式DAG任务流。参见workflow.md 作为批处理引擎使用:类似SpringBatch+XXLJob框架,提供分布式批处理任务支持。可以通过配置文件指定如何解析、生成文本或者二进制数据文件,无需编写解析和生成代码。参见batch.md 作为规则引擎使用:通过配置实现复杂的业务规则判断。参见rule.md 作为数据驱动的自动化测试框架使用:通过录制、回放的机制实现自动化测试。第一遍运行的时候自动录制输出数据,此后运行时自动和录制的数据快照进行比较,减少手工需要编写的代码量。参见autotest.md 示例页面 界面框架 ! 使用Excel来定义数据模型 ! 使用Excel来定义对外发布的API模型 ! 集成百度的前端低代码框架AMIS ! 集成GraphQL调试工具 ! 提供IDEA插件,支持自定义DSL的断点调试 ! 使用Excel作为报表设计器,支持复杂的中国式报表 ! ! 使用Word模板来导出Word报表 ! 使用Excel来设计决策表和决策矩阵 ! ! 开源协议 Nop平台的前端采用MIT协议,后端整体采用AGPL3.0开源协议。但是国内的中小企业可以在类似Apache2.0协议的条件下使用本项目的代码(可以免费商用,修改代码无需开源,但是要保留源码中的原始版权信息)。为了方便第三方集成,nop-api-support/nop-commons/nop-core这三个包采用Apache 2.0协议。 判断是否中小企业的算法如下: switch(贵公司很有钱吗()){ case "有的是钱":{ console.log("都这么有钱了,还需要整天琢磨别人的知识产权是否免费吗?"); return false; default: return true; } }关于第三方依赖的版权声明,详见NOTICE文件。 技术支持 使用中遇到问题或者BUG可以在Gitee上提Issues,或者在GitCode上提Issues 致谢 感谢网友xyplayman贡献的ORM测试用例,原项目地址 https://gitee.com/xyplayman/nop-orm-demo 感谢网友Crazydan Studio对IDEA插件所进行的彻底改写,极大丰富了这个插件的功能 社区 官网国际站: https://nop-platform.github.io/ GitCode社区: https://gitcode.com/org/nop-platform/discussion 网友Crazydan Studio建立的Nop开发实践分享网站 网友评价 网友: 我们是30人的小公司,一个大半年的项目试着用了效果还可以,效果质量各方面都有提升,后面准备深度使用。 现在回过头来看最大的2个感受: 下层基础决定上层建筑,一定程度上拉高了开发人员的技术水平下限 往年维护的各种解决方案的基础框架,通过这种思想是能够形成统一,让沉淀有深度不仅仅是广度 而且现在发现之前都用错了 有一些个性的代码直接在clone分支重写了 目前看都完全可以不动Nop底层代码达到个性化的需求。如果开源项目都这样去规划 就没有那么多冗余的衍生版本了 canonical: 一个小众的框架,你们在不熟悉的情况下直接用于开发产品上线,当时是怎么想的? 网友: 低代码这块很早就了解了 也用过jeecg,jepass这种,看过很多的爱速搭、宜搭从零到一的技术路线。基于这个,一看到nop,就知道这个没错了,果断用了。 canonical: 感觉Nop与上面这些低代码框架有什么区别? 网友: 缺少理论做支撑.常见的低代码框架技术路线都会不可避免的越走越窄,太面向实践,短期可能有优势。但是web3时代,web2的产物考虑不够长远慢慢都会被淘汰。 我个人偏见,Nop相比开源的低代码框架真的是降维打击。感谢作者开源这么优秀的框架。 作者微信和微信讨论群 ! 添加微信时请注明:加入Nop平台群 微信公众号 ! ⬇️ 下载地址 {cloud type="default" title="网盘下载" url="https://gitee.com/canonical-entropy/nop-entropy/repository/archive/master.zip"} 下载后请先检查文件完整性,如有问题请在评论区反馈