-
bepasty 局域网版:手机友好的文件 / 文字分享,支持续传与浏览器端加密
bepasty 是一个老牌开源“文件版 pastebin”:上传任意文件或一段文字,得到一个短链接,别人打开就能预览、下载。我们在它的基础上做了一个面向家庭 / 小团队局域网的派生版,源码公开: 服务端:github.com/erniu96/bepasty-server 命令行客户端:github.com/erniu96/bepasty-client-cli 两者都沿用上游的 BSD-2-Clause 许可证。 解决什么问题 家里几台电脑、手机之间传东西,常见做法是发微信、AirDrop 或者网盘。它们各有毛病:微信压缩图片、有大小限制;AirDrop 只在苹果设备之间;网盘要登录、要走外网。 我想要的是:局域网里开一个网页,手机上点一下就能传、传完自动复制链接;大文件传到一半断了能接着传;中文文件名不乱码;偶尔有私密文件,能加个口令再分享。上游 bepasty 的存储、权限和预览框架很扎实,但界面是英文桌面风格,浏览器上传不能续传,中文文件名会被过滤掉。于是在它上面改。 适合:家里或办公室有一台常开的机器、想要一个自己掌控的“传文件 / 贴文字”小站的人。不适合直接暴露到公网(见文末“安全与限制”)。 哪些是上游的,哪些是我们改的 上游 bepasty 由 Thomas Waldmann 等人自 2014 年起维护(本派生基于 2026-07-29 的上游 master)。下面这些是上游原有的:文件系统存储(.meta + .data)、过期时间、权限模型(read/create/modify/delete/list/admin)、Pygments 代码高亮、图片 / 音视频 / PDF / asciinema 预览、多文件合集、REST API、命令行清理工具。 服务端我们加了 20 个提交(约 7300 行增、1000 行删),分几类: 界面 重写成中文、移动优先的单页工作区:“上传”和“列表”在同一页切换,切到列表时正在进行的上传不会中断;没有 JavaScript 时仍退回普通表单,可用。 任何地方粘贴截图 / 文件即上传,Ctrl/Cmd+Enter 提交文字;单个上传完成后自动复制链接(浏览器拒绝时静默跳过)。 列表里就地重命名、删除、复制链接;.txt 显示前三行预览,链接可点击。 详情页:下载 / 复制内容 / 打开原文件 / 二维码,下面是“预… -
iMirror:一个开源的 macOS 菜单栏 AirPlay 投屏接收器
iMirror 是一个 macOS 菜单栏小工具:打开后,iPhone、iPad 或另一台 Mac 可以在“控制中心 → 屏幕镜像”里直接选中这台 Mac,把画面投过来。源码按 GPLv3 公开在 github.com/erniu96/iMirror,Releases 里有可直接安装的 dmg,最新版本是 1.2.1(2026-10-06)。 解决什么问题 macOS 12 起系统自带“隔空播放接收器”,但画面是全屏铺开的,不方便缩在屏幕一角边看边干活。开源的 UxPlay 很好用,但主要面向 Linux 命令行,在 Mac 上要自己装 GStreamer 等依赖。 我想要的是: 演示 / 录课 / 调 App 时,把手机画面放在 Mac 屏幕一角,置顶、可缩放,不挡工作区; 两台手机同时投,各占一个窗口,一台断开不影响另一台; 不用登录账号,不装一堆依赖,菜单栏里一个图标就够。 适合:做 iOS 开发和测试的人、需要在会议或直播里展示手机屏幕的人、家里想把孩子 iPad 画面放到大屏 Mac 上看的人。 功能 菜单栏常驻:没有 Dock 图标,菜单里显示接收状态(等待设备 / 等待输入验证码 / 正在接收 N 台设备)和分步投屏说明。 多设备同时投屏:每个连接独立的硬件解码器、Metal 视图和窗口。 无边框窗口:可缩放、默认置顶;鼠标移入才在左上角出现停止投屏、置顶、全屏按钮。横竖屏切换保持比例,全屏或窗口平铺时加黑边,不拉伸(1.2.1)。 随机验证码配对:每次新设备配对时生成新的四位验证码,不保存固定码;验证过的设备下次免码,可在设置里一键忘记全部设备或重置接收器身份。 接收器名字带四位本机标记(如 iMirror-A7K2),家里有几台 Mac 也分得清。 声音:支持 AAC-ELD、AAC-LC、ALAC、PCM,音量跟随投屏设备,可在菜单里关闭(1.1.0)。 登录时自动启动;睡眠时停止网络服务,唤醒后自动恢复。 界面简体中文 / 英文,跟随系统语言。 广播能力:H.264,最高 1920×1080@60。不广播尚未实现的 HEVC。 怎么实现的 整体分两半:协议层沿用开源项目,Mac 端的应用、解码、显示和音频是我们写的。 SwiftUI 菜单栏与设置 └ AppModel(用例编排) ├ AirPlayReceiverService ─ ObjC…