{"repo":"tonitrnel/ephemera","free":true,"listed":false,"github":"https://github.com/tonitrnel/ephemera","clone":"git clone https://github.com/tonitrnel/ephemera.git","description":"Quickly sync text, images and files across devices","language":"TypeScript","stars":18,"topics":["axum","docker","file-sharing","nas","p2p","react","rust","self-hosted","shadcn-ui","typescript"],"license":"MIT","category":"self-hosted-apps","readme_excerpt":"Cedasync Cedasync 是一个设计用于运行在 NAS、软路由等类似设备上的程序，目的是⽤于多个设备间的⽂本、图像和⽂件临时存储和共享。 功能 - 文件共享：支持文本、图像、音频等文件粘贴复制以及拖拽，方便用户在不同设备上共享。 - 实时更新：基于 SSE，用户能够接收到列表的实时变化。 - 本地 Hash 计算：所有上传的文件都会在本地计算 SHA-256 值再与服务端进行比较以去除上传重复的内容，其中对于小于 2 MB 的文件将使用浏览器 API 计算，大于等于 2MB 的文件将使用 Worker 计算。 - 分片上传：对于 2 MB 将会无痕上传，对于大于 100 MB 的文件将开启分片上传，并且支持断点续传 - 基于流传输：所有的文件都以流的形式返回或写入，服务端支持 http range 请求 - 本地存储：该项目采用 TOML 格式存储文件索引方便可读、迁移和修改 - 模拟目录：采用 Tar 文件模拟目录，实现上传/下载目录(需要 Chrome) - 点对点传输：支持两个设备点对点传输文件，基于 WebRTC 和 WebSocket 注意：本项目依赖浏览器一些特性，因此需要使用 HTTPS 环境上使用，建议使用 Nginx 转发 已知问题 - 滚动闪屏 - 服务端内存占用过大（ 8 MB） - 点对点传输问题（此功能基本不可用） - WebRTC 跨设备无法连接 - 传输速率低、高发性传输失败（bug?） - 连接繁琐（计划重构这一块，包括 WebRTC） - 在 Android 上当连接后选择文件时断开连接 使用 Docker 安装使用 创建 data、logs 和 config 目录 和 配置文件 配置文件参考 cedasync-config.toml Nginx 配置参考 本地运行 技术栈 - 前端：TypeScript 和 React 使用 Vite 构建 - 后端：Rust 和 Axum 构建，图片使用 libvips 处理 - WASM: WASM-Pack 快速开始 以下是快速启动项目的步骤 1. 克隆项目代码 2. 安装依赖 3. 启动服务 4. 在浏览器访问 http://localhost:8081 配置 应用程序的配置位于 config/cedasync-config.toml 文件中。您可以根据需要修改其参数 贡献 欢迎贡献代码，您可以通过以下步骤参与贡献： 1. Fork 本仓库 2. 创建您的分支： git checkout -b feature/YourFeature 3. 提交您的更改： git commit -am 'feat: added feature' 4. 推送到分支： git push origin feature/YourFeature 5. 提交 Pull Request 许可证 这个项目使用 MIT 许可证。更多信息请参阅 LICENSE 文件。","default_branch":null,"files":null,"tree":[],"storefront":"/r/tonitrnel","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/tonitrnel/ephemera/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}