DevTrendsDeveloper trends
Accent color

DEV TRENDS / DAILY DISCOVERIES

Mar 20, 2026 · What developers are building

Daily discoveries from developer communities, independent makers, and open source.

Flare Stack Blog —— 基于 Cloudflare 全家桶的全栈博客 CMS,内置 MCP Server

演示站: 市面上大多数博客方案是静态站点生成器,如果想要评论、搜索、后台管理等动态功能,往往需要自己拼凑多个第三方服务。Flare Stack Blog 是一个跑在 Cloudflare Workers 上的全栈博客 CMS,集成 D1、R2、KV、Durable Objects、Workflows、Queues、Workers AI、Images 共 9 项 Cloudflare 服务,依托免费额度,个人使用基本没有费用。 技术栈:React 19 + TanStack Start(SSR)+ Hono + Drizzle ORM + TipTap 编辑器 + TailwindCSS 4 界面预览 <table <tr <td<strongDefault 主题</strong</td <td<strongFuwari 主题</strong</td </tr <tr <td alt="Default 主题首页" /</td <td alt="Fuwari 主题首页" /</td </tr <tr <td<strong后台编辑器</strong</td <td<strongMCP 客户端管理</strong</td </tr <tr <td alt="后台编辑器" /</td <td alt="MCP 客户端管理" /</td </tr </table 主要功能 内置 MCP Server:通过 OAuth 鉴权连接 Claude Code 等 AI 客户端,用自然语言管理文章、评论、标签、媒体库 AI 辅助:基于 Workers AI 的评论自动审核、文章摘要生成、标签推荐 主题系统:TypeScript 接口定义主题契约,业务与视觉层解耦,通过构建时环境变量切换主题,目前内置 2 套主题 异步工作流:6 个 Cloudflare Workflows 处理文章发布、编辑器自动快照、评论审核、定时发布、导入导出 评论 & 通知:嵌套回复,邮件 / Webhook 双通道通知,按事件类型订阅 其他:Orama 全文搜索(支持中文分词)、版本历史回溯、Markdown 导入导出、RSS / Sitemap / Schema.org

Original
DTAgent extensionDTAgent orchestrationDTMCP service
—

Skill Manager —— Agent Skill 管理面板

Claude Code、Codex、Cursor 等 AI 编程工具通过扫描本地目录加载 "skill"(slash 命令、agent、工作流)。同时使用多个 AI 工具时,需要为每个工具单独维护软链接,繁琐且容易出错。 Skill Manager 是一个轻量级的本地 Web 面板,解决这个问题: 扫描你的 skill ,按项目分组展示所有 skill 直观显示每个 skill 在各工具中的链接状态(已链接 / 未链接 / 已屏蔽 / 链接错误) 点击即可切换链接,右键打开上下文菜单,支持批量操作 三级屏蔽规则:工具级 / 分组级 / Skill 级,支持白名单例外 全量同步、清理失效链接、名称冲突检测 单文件前端,无需构建;纯 Node.js 后端,无数据库 Manager 界面 bash git clone cd skillmanager && npm install cp tools.example.json tools.json 填入你的工具路径 npm start 访问 适合同时使用多个 AI 编程工具的开发者。

Original
DTData & operationsDTSoftware developmentDTAgent extension
—

零手续费、直接到账的数字商品市场

MySell 提供从店铺搭建到订单交付的完整数字商品交易流程 买家无需注册,仅需邮箱即可购买并通过 PayPal 或多种加密货币付款。 平台不收取任何交易手续费,卖家直接收到付款;支持订单邮件通知与多语言界面,适合独立创作者、社群与小型数字商品商店自托管运营。

Original
DTWeb appDTWeb
—

proxychains-rs —— 跨平台的 proxychains4(支持按配置分组指定代理)

proxychainsrs 是一个 Rust 实现的 proxychains4,目标是让“指定程序走代理链”在 Linux / macOS / Windows 都可用。 当前已支持: 协议:socks5、socks4/socks4a、http、raw 链路模式:dynamic/strict/random/loadbalance/failover 指定配置文件:f 指定代理分组:[ProxyList:<group] + group 配置工具:listgroups、check DNS:proxydns(兼容 proxydnsold / proxydnsdaemon / roundrobinchain 语义) 适用场景: 多地区线路切换(如 jp/us/hk 分组) 指定命令临时走代理,不改系统全局代理 排查网络连通性与代理链故障 示例: proxychains4 f ./proxychains.conf group jp v curl 欢迎大家试用,尤其欢迎 Linux 发行版兼容性和 Windows 目标程序兼容性的反馈。

Original
DTData & operationsDTContent / resourceDTmacOS
—

Memind - 首个 Java 原生的 AI Agent 认知记忆系统,让 Agent 的记忆像人一样进化

Java / AI / Spring 生态 / 基础设施 这是一个为 AI Agent 设计的认知记忆系统,后端完全使用 Java 开发,深度集成 Spring Boot 4.0 + Spring AI 2.0。 目前主流的 AI 记忆方案大多把记忆当成"搜索问题"——对话内容切片后丢进向量数据库,检索时做相似度匹配就完事了。但人类的记忆不是这样工作的:我们不只是记住事实,还会归纳模式、形成认知、建立对一个人的整体理解。 Memind 试图模拟这个认知进化过程: 🍃 事实提取:从单次对话中提取具体信息,比如"用户有 8 年后端经验,在阿里待过 3 年" 🌿 模式归纳:跨多次对话自动归纳规律,比如"资深后端架构师,分布式系统专家" 🌳 认知形成:进一步抽象出深层理解,比如"偏好长期代码可维护性,技术选型偏保守" 记忆不再是一堆碎片化的向量片段,而是一个不断进化、层层深入的认知体系。 主要功能 三层认知进化:事实 → 模式 → 认知,记忆会自动"思考"和"成长" 双作用域记忆:USER 作用域(画像/偏好/经历)+ AGENT 作用域(工具模式/可复用流程) 双重检索策略:Simple(向量 + BM25 融合)和 Deep(LLM 辅助扩展 + 重排序) 全链路可观测:内置 OpenTelemetry + Micrometer,记忆提取和检索过程透明可追踪 技术栈 Java 21 + Spring Boot 4.0 + Spring AI 2.0 + SQLite/MySQL + Qdrant + OpenTelemetry 项目状态 ✅ LoCoMo 基准测试 86.88% 整体准确率(仅用 gpt4omini) ✅ 82 个测试文件,JaCoCo + Checkstyle + Spotless 代码规范 ✅ GitHub Actions CI/CD ⚠️ 当前版本 0.0.1SNAPSHOT,尚未发布到 Maven Central ⚠️ 距离大规模生产部署还需要更多实战验证 对于想用 Java 构建 AI Agent、或者不满于现有记忆方案只做"向量搜索"的开发者,Memind 提供了一个不同的思路。

Original
DTData & operationsDTSoftware developmentDTAgent extension
—

RexCLI — 你的 AI Agent 有了记忆,跨会话接着干

【工具自荐】RexCLI — 你的 AI Agent 有了记忆,跨会话接着干 核心震惊点: Claude Code / Codex CLI / Gemini CLI 重开一个会话,之前的工作全丢了。RexCLI 用一个本地文件系统 Context DB,让 AI Agent 真正记住了上下文,下次启动从断点继续。 正文 用 Claude Code 干活,开了十几个会话,每个会话都是从零开始。 好不容易在 Session A 里完成了一半的需求,切到 Session B 想接着干——AI 完全不记得你在做什么。上下文丢失、任务重复、进度反复。这是所有 AI CLI 工具的通病。 RexCLI(AIOS) 解决了这个问题。 它做了什么 RexCLI 是一个本地优先的 Agent 工作流增强层,支持 Claude Code、Codex CLI 和 Gemini CLI。它为这些 AI CLI 添加了三个核心能力: 1. 可恢复的任务记忆(Context DB) 每个项目有独立的 SQLite 数据库,记录会话历史、事件、检查点。Agent 每次启动自动注入上下文包,上次做到哪、卡在哪、下一步是什么,一清二楚。 2. 统一浏览器自动化(Playwright MCP) AI 不仅能写代码,还能操作网页。通过 browser 工具组,Agent 可以点击、填表、截图、导航——在真实浏览器里完成端到端任务。内置隐身指纹浏览器,防止被检测。 3. 隐私保护(Privacy Guard) 严格模式下,AI 读取配置文件前自动脱敏,API Key、Token、Cookie 全部过滤,本地跑不过第三方。 震惊点:30秒装完,不需要改任何习惯 安装完以后,你还是用 codex、claude、gemini 这几个命令。RexCLI 通过 zsh 透明包装(transparent wrapper),自动在后台注入上下文。零学习成本,零工作流改变。 bash curl fsSL | bash source ~/.zshrc aios 选 Setup all Doctor,完成 Windows 同样一行命令搞定。 架构长什么样 用户 → codex / claude / gemini → zsh wrapper(透明注入) → ContextDB CLI(记忆层:init/session/checkpoint/pack) → Playwright Browser MCP(browser 工具) → 本地浏览器 / 真实网页 所有数据留在本地 memory/contextdb/,不上传到任何服务器。 具体能干什么 长任务分阶段执行:做到一半可以退出,下次从检查点继续,不丢进度 浏览器自动化:网页操作类任务(数据采集、表单填写、UI 测试)直接用自然语言驱动 团队上下文共享:Context Pack 可以导出,丢给队友的 AI 直接续上 隐私优先:严格模式下配置文件脱敏,AI 看不见你的密钥 为什么是开发者利器 对个人开发者:不再为"上次做到哪了"烦恼,Session 就是真正的任务单元,而不是每次都重建。 对团队:Skill 系统(技能库)可以积累操作规范,新项目开箱即用,不需要反复 prompt。 对任何 AI CLI 用户:透明包装意味着不需要改变任何使用习惯,装完就生效。 GitHub: 文档: 博客: 案例库:

Original
DTResearch & learningDTData & operationsDTAgent extension
—

JobMirror — AI 求职决策平台,简历匹配 + Offer 对比 + 职业报告一站搞定

我在找工作时遇到的问题 同时拿到3个 offer,薪资差不多,但公司文化、成长空间、福利完全不同。我花了两周时间做表格、问朋友、反复纠结,最后还是没有底气——因为没有一个系统的方法帮我量化这些因素。 这就是我做 JobMirror 的原因。 它能做什么 🎯 JD 匹配分析 上传简历 + 粘贴职位描述,AI 秒出匹配分(0100)、技能差距清单、针对性改进建议。投简历前先知道自己有几成把握。 📝 简历优化 不是泛泛的「用数字量化成果」,而是针对你投的这个具体岗位,告诉你哪句话要改、怎么改、为什么改。 🧠 大五人格测评 30分钟测评,输出你的职业优势、适合的工作环境、潜在的职场风险。不是算命,是有数据支撑的自我认知。 ⚖️ Offer 对比(我最喜欢的功能) 把多个 offer 的薪资、福利、成长空间、通勤、文化匹配度全部录入,设置你自己的权重,AI 生成加权评分和对比雷达图。选哪个一目了然。 📊 综合职业报告 整合所有分析,生成一份完整的职业决策报告,可以导出分享给家人或职业顾问。 真实使用场景 投了50份简历只有2个回音 → 用 JD 匹配发现简历和岗位匹配度只有40%,针对性修改后回复率提升 拿到 BAT 和创业公司两个 offer → Offer 对比功能帮你把「感觉」变成数字 想转行但不知道差距在哪 → 技能差距分析给出具体的学习路径 免费使用 免费版每月有基础次数,够用来体验核心功能。Pro 版 .9/月,无限使用所有功能。 🔗 如果你也曾在 offer 之间纠结过,欢迎试试。有任何反馈欢迎留言。

Original
DTResearch & learningDTBusiness & growth
—

订阅管理软件

背景 现在的AI工具层出不穷,我们可能订阅了很多AI服务,比如CC,Codex,Kiro等等,有的是长期订阅,有的可能就是试用一个免费期看看效果...一来二去,订阅的产品就自然而然的多了起来。基于这个原因,我开发了一个订阅管理软件(目前只有iOS app),方便用户可以轻松的掌握自己的订阅信息。 Key points 定期提醒,这样就不会有忘记取消订阅导致的扣费了 数据图表,各项维度一目了然 数据安全:数据全部在本地 数据同步(Pro iCloud同步) 桌面小组件(Pro) 付费情况 目前免费版本完全够普通用户使用了,如果记录多于6个,或者需要上述的 Pro 功能,那么就需要付费使用。目前 Pro 版本仅 2.99 元,一次付费,永久使用的。 截图预览 !

Original
DTSoftware developmentDTAgent orchestrationDTMobile app
—

Mini-Tools.uk - 一个纯前端、保护隐私的开发者“在线工具箱”

阮大,你好! 推荐一个我自己独立开发的纯前端在线工具箱:MiniTools.uk 痛点与初衷: 作为开发者,我们经常需要用到在线 JSON 解析、代码比对 (Diff)、PDF 转图片等工具。但市面上很多免费网站不仅广告满天飞,还会把包含敏感业务数据、API Key 的代码偷偷上传到他们的后端服务器处理,存在极大的数据泄露风险。 解决方案: 为此,我用纯前端(ClientSide)架构手搓了这个涵盖 14 款日常高频功能的工具集。它所有的处理都在浏览器本地完成,彻底切断了数据上传。 核心亮点: 1. 绝对隐私安全:无论是解析几十 MB 的超大文件 JSON,还是生成随机密码,全过程零服务器交互,断开网络也能正常使用。 2. 极速零延迟:告别上传和下载的等待进度条,利用本地算力,真正的秒开秒渲染,体验媲美本地原生 App。 3. 工具丰富:除了开发者刚需的 JSON 格式化、文本对比 (Diff),还包含强密码在线生成、图片纯本地压缩/取色、以及汇率换算等效率神器。 界面克制,极简无广告,支持中英等多语言。希望能被周刊收录,给国内注重代码隐私和效率的开发者们提供一个更安全、更纯粹的新选择!

Original
DTData & operationsDTSoftware developmentDTWeb app
—

PasteMemo - macOS 智能剪贴板管理器

复制的内容总是找不到?试试这个👇 复制即文件:文本/截图直接粘贴成文件 全局快捷键一键调出,即搜即贴 智能识别链接、代码、电话号码 完全离线,数据不出本机 免费下载:

Original
DTDesktop productivityDTSoftware developmentDTmacOS
—

Folio:一个轻量的待读(Read-it-later)Chrome 扩展

痛点 经常逛一些乱起八糟的网站,碰到认为有价值的不舍得关掉,但是临时又没有时间看/看不完。 前后试过三个方式: Chrome 的标签页组:页面越积越多,而且不够持久化; Chrome 的书签:能持久化,但有个尴尬的问题,读完的链接是删掉,还是留着?缺少“阅读状 态”; Notion 的 TODO:能做流程管理,但有些页面抓不到标题,最后只剩一串链接,可读性不行。 基于这些问题,就做了这个 Readitlater 插件。 功能 本着解决我这几个痛点的目标,功能设计的比较克制,先解决核心问题: 一键把当前页面加入待读( Unread ) 支持搜索和状态流转( Unread / Reading / Done ) 支持本地持久化、导入导出 顺手加了几个实用功能: 中英文界面 主题切换 标签管理 截图 使用 GitHub: 安装说明: Releases:

Original
DTWeb appDTSkill / pluginDTWeb
—

【字节】【杭州】高级研发工程师(金融产品方向)-国际支付

职位描述 1. 构建贴合消费者的海外数字钱包和支付产品,以支持海内外生态业务和海内外用户;参与国际支付金融产品团队工作,包括需求分析、技术方案产出、研发和稳定性建设等; 2. 面向未来进行复杂支付、金融业务相关系统的架构设计,掌握大型分布式系统的设计能力,确保系统的设计质量并考虑整体技术成本(开发、运行、维护、可靠性); 3. 思考现有业务和系统的不足及瓶颈点,提出优化方案以优化客户体验及提升系统性能和稳定性; 4. 参与技术项目的方案设计和评审,对项目进行质量评估及把控,思考系统迭代过程中的各类问题,促进团队工作效率和研发质量的提升。 职位要求 1. 3年及以上高可用、分布式大型系统设计和研发经验,扎实的编程基础,良好的编程习惯,对于Java/Python/Golang/C++/PHP至少精通其中一种; 2. 深入理解分布式、缓存、消息、搜索、推荐等机制,能对分布式常用技术进行合理应用,解决实际问题;出色的线上定位及解决问题经验; 3. 掌握系统设计和分析的核心技能,深入并能把握关键细节,有较强的项目管理能力,能够主动进行跨团队的沟通、协调和方案执行,以结果为导向; 4. 对于建设高可用、资金安全的分布式系统有实践经验,对于线上业务安全有专业的态度和敬畏之心; 5. 有支付、金融产品、BNPL、花呗、借呗、电子钱包、国内或国际线上支付工作经验者优先; 6. 有国际化团队工作经验者优先。 有意向直接留言即可。

Original
DTSoftware development
—

voro —— 用 Rust 实现的命令管理与执行工具

voro 快速、极简的命令行工具,让常用命令随手可用。基于 Rust,几乎零延迟。 日常工作中,我们经常需要反复输入很长的命令: bash NODEENV=production APIURL=... pnpm build && pnpm deploy 用 voro: bash vo add deployprod "NODEENV=production APIURL=... pnpm build && pnpm deploy" vo deployprod ✔ 更多示例和用法 bash Add commands vo add <name <command [options] Options: desc <text cat <category Category for organization tags <t1,t2 Commaseparated tags confirm Require confirmation before execution passthrough Allow argument passthrough with Examples vo add g "git" vo add gs "git status" cat git tags "quick,status" vo add deploy "npm run deploy" desc "Deploy to production" confirm vo add serve "python m http.server" passthrough vo serve 8080 Runs: python m http.server 8080 Edit commands vo edit <name [command <cmd] [desc <text] [cat <cat] [tags <tags] vo edit <name editor Open in $EDITOR Delete commands vo del <name Alias: vo rm View command details vo get <name 核心能力 保存并复用命令(替代零散 alias) 参数透传:vo serve 8000 模板参数:自动提示输入 执行确认(适合危险命令) 搜索 / 分类 / 标签 / 最近使用 支持 TUI 管理 👉 👉

Original
DTData & operationsDTSoftware developmentDTCLI
—

AgentBrief —— AI 编程 Agent 的职业技能包管理器

阮老师好! 推荐一个我做的开源 CLI 工具:AgentBrief 痛点: 现在用 Claude Code、Cursor 这些 AI 编程 Agent 的人越来越多,但每开一个新项目都要手写 CLAUDE.md 来告诉 Agent 怎么做事——团队规范、领域知识、安全约束……换个项目又要重来一遍。 同时,Agent Skills 生态正在爆发(skills.sh 上有 89,000+ 个 skill),但太分散了,用户需要一个一个手动安装配置。 AgentBrief 的解决思路: 把 Agent 的"职业技能包"(角色定义 + 领域知识 + 行为约束 + 可触发技能)打包成可复用的模块,一条命令安装: bash npx agentbrief use startupfounder 装 brief 前后对比 — 同样的问题,完全不同的回答: 核心设计亮点: 1. eslintconfig 模式:eslintconfigairbnb 管代码规范,AgentBrief 管 Agent 行为规范 2. 引擎无关:同一个 brief 自动适配 Claude Code / Cursor / OpenCode / Codex 3. 可继承组合:extends 机制让你继承社区 brief 后叠加团队定制 4. 去中心化分发:GitHub 仓库就是 brief 包,git tag 就是版本 5. 17 个官方职能包:全栈工程师、安全审计、产品经理、创业者、DevOps、数据分析等 17 个官方 brief,覆盖开发 / 产品 / 增长 / 运维: Brief 详情页 — startupfounder 组合了 5 个 brief、13 个技能: 项目用 TypeScript 构建,MIT 协议,有中英文网站和完整文档。 GitHub: 网站:

Original
DTSecurity & testingDTData & operationsDTAgent extension
—

Tunelo - 一行命令将本地服务暴露到公网(Rust, QUIC)

Tunelo 一个用 Rust 写的隧道工具,一行命令将本地端口或文件暴露到公网,类似 ngrok 但完全开源、可自建。 bash 暴露本地端口 tunelo port 3000 ✔ Public URL: 共享文件夹(带 Web 文件浏览器) tunelo serve . 自建服务端 tunelo relay domain yourdomain.com 特点: 单个二进制文件(~4 MB),客户端和服务端合一 QUIC 隧道传输(比 ngrok 的 HTTP/2 更先进) 零拷贝数据转发,8 MB 内存 内置 Web 文件浏览器:代码高亮、Markdown 渲染、PDF/视频/音频预览、CSV 表格 断线自动重连 无需注册,完全免费,可自建 与同类工具对比: | | ngrok | bore | tunelo | ||||| | 开源 | 否 | 是 | 是 | | 需要账号 | 是 | 否 | 否 | | 传输协议 | HTTP/2 | TCP | QUIC | | 可自建 | 否 | 是 | 是 | | 文件浏览 | 否 | 否 | 是 | 安装:curl fsSL | sh GitHub: 网站:

Original
DTSoftware developmentDTWeb appDTWeb
—

Patternia — 为现代 C++ 提供模式匹配

Patternia 致力于为 C++ 提供一种更自然的 matchstyle 表达方式,同时尽量避免隐式绑定、隐藏规则这类容易让人困惑的设计。 目前支持: 字面量匹配 显式绑定(且只允许显式绑定) has< 解构 std::variant 匹配 多分支下的快速分发路径 守卫谓词 [] 语法示例如下: cpp int x = 42; // 基本的字面量匹配 auto res = match(x) | on ( lit(1) "One", lit(2) "Two", "Other" ); cpp struct Point { int x; int y; }; Point p {0, 0}; // 结构体解构并绑定解构的值 match(p) | on ( $(has<&Point::x, &Point::y) [](int x, int y]{ std::cout << "x: " << x << " y: " << y << '\n'; }, ... ... ); 更多代码示例可以前往 Show Patternia 查看并运行; 官方文档 GitHub

Original
DTSoftware development
—

APTUI

一个 Linux 的终端应用,用于充当 Debian/Ubuntu 安装管理器,管理 APT 软件包。

Original
LanguageGoDTSoftware developmentDTLinuxOriginal工具
—

my.WordPress.net

如果你想尝试 WordPress,但没有服务器,可以使用官方新推出的这个服务,打开上面网址就可以了。

Original
Original工具
—

GrobPaint

一个跨平台的图像编辑器,特点就是非常轻量级,可以在浏览器运行,也可以编译成二进制文件。

Original
LanguageJavaScriptOriginal工具
—

HealthTick

macOS 菜单栏久坐提醒工具。

Original
LanguageSwiftDTDesktop productivityDTLifestyle & entertainmentOriginal工具
—

CheatReader

一个跨平台的阅读软件,可以悬浮在桌面上,支持单行模式,适合想在工作流里“偷偷读书”的人。

Original
LanguageDartOriginal工具
—

锤子便签

开源的网页版锤子便签,可以作为 Skill 调用。

Original
LanguageTypeScriptDTWeb appDTSkill / pluginOriginal工具
—

Speech Speed

一个很有意思的 Chrome 插件,根据语速调节视频播放速度。如果剧中人说话慢,视频就快速播放,说话快,就慢速播放。

Original
LanguageJavaScriptDTSkill / pluginOriginal工具
—

HuiNet: 让 AI Agents 跨网络通信的去中心化 P2P 网络

人工智能 HuiNet 是一个革命性的去中心化 P2P 网络库,专为 AgenttoAgent (A2A) 通信设计,让 AI 智能体能够无缝协作与交流! HuiNet 是一个去中心化的 P2P 网络库,让 AI Agents(如 Claude Code、OpenAI Codex 等)能够在不同计算机和网络之间直接通信。通过自动发现和加密消息传递,实现跨网络的 Agent 协作。 项目使用 TypeScript + Node.js 构建,采用 Ed25519 公钥加密保障通信安全,支持 mDNS 本地网络自动发现。 ⚠️ 声明: 这是一个学习型项目,旨在探索分布式系统和 P2P 网络技术。目前处于早期开发阶段,欢迎贡献者和反馈! 亮点 1. HuiNet 使用 UDP 组播实现零配置的节点发现。当节点启动时,会自动向局域网广播自己的存在 2. 所有 P2P 消息都使用 Ed25519 签名验证,确保消息来源可信 3. HuiNet 实现了紧凑的二进制消息协议,使用 Varint 编码减少消息大小 4. HuiNet 实现了高效的三层路由表,根据连接频率自动调整节点层级 markdown // mDNS 本地网络自动发现 export class MDiscoveryService extends EventEmitter { async start(): Promise<void { // 创建支持地址复用的 UDP socket this.socket = dgram.createSocket({ type: 'udp4', reuseAddr: true }); // 绑定到组播端口 43000 this.socket.bind(this.multicastPort, this.bindAddress, () = { // 加入组播组 224.0.0.114 this.socket!.addMembership(this.multicastAddress); this.socket!.setBroadcast(true); this.socket!.setMulticastTTL(1); }); } // 向网络广播自己的存在 announce(): void { const message: DiscoveryMessage = { type: 'announce', nodeId: this.nodeId, port: this.port, timestamp: Date.now() }; // 发送到组播地址 this.socket.send( Buffer.from(JSON.stringify(message)), this.multicastPort, this.multicastAddress ); } } // Ed25519 端到端加密 import as nacl from 'tweetnacl'; export function signMessage(message: Buffer, privateKey: Buffer): Buffer { if (privateKey.length 64) { throw new Error(Invalid private key length: ${privateKey.length}. Expected 64 bytes for Ed25519); } // 使用 tweetnacl 进行 Ed25519 签名 const signature = nacl.sign.detached( new Uint8Array(message), new Uint8Array(privateKey) ); return Buffer.from(signature); } export function verifySignature( message: Buffer, signature: Buffer, publicKey: Buffer ): boolean { if (signature.length 64) { throw new Error(Invalid signature length: ${signature.length}. Expected 64 bytes); } if (publicKey.length 32) { throw new Error(Invalid public key length: ${publicKey.length}. Expected 32 bytes); } // 验证签名 return nacl.sign.detached.verify( new Uint8Array(message), new Uint8Array(signature), new Uint8Array(publicKey) ); } // 二进制消息协议 (Varint 编码) // 消息格式: [headerlen:varint][headerjson][bodylen:varint][body][signaturelen:varint][signature] export function encodeMessage(message: BaseMessage): Buffer { const headerJson = JSON.stringify(message.header); const headerBuffer = Buffer.from(headerJson, 'utf8'); const body = message.body || Buffer.alloc(0); const signature = message.signature; // 使用 varint 编码长度 (节省空间) const headerLen = encodeVarint(headerBuffer.length); const bodyLen = encodeVarint(body.length); const sigLen = encodeVarint(signature.length); return Buffer.concat([headerLen, headerBuffer, bodyLen, body, sigLen, signature]); } // Varint 编码: 小于 128 的数字只占 1 字节 function encodeVarint(value: number): Buffer { const buffer = Buffer.allocUnsafe(5); let offset = 0; do { let byte = value & 0x7F; // 取低 7 位 value = 7; // 右移 7 位 if (value 0) byte |= 0x80; // 设置继续位 buffer[offset++] = byte; } while (value 0); return buffer.subarray(0, offset); } 截图或演示视频

Original
DTResearch & learningDTData & operationsDTVertical agent
—

Tunelo - Rust 写的隧道工具,一行命令暴露本地服务到公网

Tunelo 项目网站: 编程语言: Rust 一个用 Rust 写的开源隧道工具,一行命令将本地端口或文件暴露到公网。类似 ngrok 但完全免费、可自建。 bash tunelo http 3000 暴露本地端口 → 获得公网 HTTPS URL tunelo serve . 共享文件夹,带 Web 文件浏览器 tunelo relay 自建服务端 特点: 单二进制文件(~4MB),客户端服务端合一 QUIC 隧道传输(quinn + rustls) 零拷贝数据转发,8 MB 内存 内置 Web 文件浏览器(代码高亮、Markdown、PDF、视频、音频) 断线自动重连 无需账号,完全开源(MIT) 安装:curl fsSL | sh

Original
DTSoftware developmentDTWeb appDTWeb
—

Respire LYF

AI-powered asthma & COPD tracker for iPhone

DTResearch & learningDTLifestyle & entertainmentDTiOS
—

MusicLib

The Ultimate Sheet Music Library Solution

DTLifestyle & entertainmentDTLibrary / SDKDTContent / resource
—

AI SDR Agent

The AI sales agent that fills your calendar while you sleep

DTBusiness & growthDTVertical agentDTWeb app
—

Tokyolore

Turn your ideas into AI artifacts & win a real trip

DTResearch & learningDTContent / resource
—

DEV TRENDS / COMMUNITY

Discuss this edition

Sign in with GitHub to share a thought, question, or useful follow-up.

Open discussions ↗