# TinySync
**Repository Path**: fanbal/TinySync
## Basic Information
- **Project Name**: TinySync
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-02-28
- **Last Updated**: 2026-03-12
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
## TinySync
轻量级、房间制的实时同步服务端。基于 .NET 8 与 LiteNetLib/ASP.NET Core,提供低延迟的 UDP 同步能力与简洁的 HTTP 控制接口,适合小游戏、原型验证、教学与小型多人实时互动场景。
### 演示

### 特性
- **轻量与易部署**:.NET 单一进程即可运行。
- **房间/会话管理**:内置 `Room`、`RoomManager`,便于按房间隔离同步数据。
- **低延迟同步**:使用 LiteNetLib 进行 UDP 通讯(示例/骨架)。
- **HTTP 控制入口**:通过简单的 HTTP API 进行房间与会话操作。
- **高性能序列化**:使用 MemoryPack 进行高性能模型序列化。
- **日志**:集成 NLog,默认输出到 `logs/` 目录。
### 目录结构
```text
TinySync/
TinySync.Core/
Protocol/
HttpModels.cs
UpdModels.cs
TinySync.Core.csproj
TinySync.Server/
HttpEndpoints.cs
LogManager.cs
NetworkManager.cs
Program.cs
Room.cs
RoomManager.cs
TinySync.Server.csproj
TinySync.sln
```
### 环境要求
- .NET SDK 8.0+
- Windows/macOS/Linux 均可运行(仓库目前在 Windows 下开发与测试)
### 快速开始
1) 克隆并构建
```bash
git clone https://github.com/Ariesybs/TinySync.git
cd TinySync
dotnet build
```
2) 运行服务端(开发模式)
```bash
dotnet run --project TinySync.Server
```
3) 发布运行(可选)
```bash
dotnet publish TinySync.Server -c Release -o out
# 在 out 目录中启动:
./TinySync.Server
```
运行后将生成日志到 `logs/`(或构建输出目录下的 `logs/`)。
### 基本架构
- **核心模型**:`TinySync.Core/Protocol/*` 定义 HTTP/UDP 的消息/数据模型。
- **网络/房间层**:`TinySync.Server/NetworkManager.cs`、`Room*.cs` 负责会话与广播。
- **HTTP 接口**:`TinySync.Server/HttpEndpoints.cs` 提供房间管理等控制入口。
如需查看/扩展接口,请直接阅读上述文件并按需修改。
### 开发与调试
- 使用 IDE(JetBrains Rider / VS / VS Code)打开 `TinySync.sln`。
- 启动 `TinySync.Server` 即可在本地调试。
- 日志默认输出在运行目录的 `logs/` 下,可按日期查看。
### 路线图(Roadmap)
- 服务端:增加断线重连机制
- 服务端:增加世界快照的保存与恢复
- 客户端示例(未开源):
- 客户端预测与回滚
- 定点数库的接入
- 网络波动的优化(抖动/丢包/延迟抖动处理)
### 致谢
- [LiteNetLib](https://github.com/RevenantX/LiteNetLib)
- 面向 .NET 的高性能 UDP 网络库,提供可靠 UDP、顺序/不排序通道、事件驱动模型与 NAT 打洞等能力。
- [MemoryPack](https://github.com/Cysharp/MemoryPack)
- 使用 Source Generator 的高性能序列化库,零拷贝/低分配,序列化体积小、速度快,AOT 友好。
- [ASP.NET Core](https://github.com/dotnet/aspnetcore)
- 现代化 Web 框架,内置路由、中间件、依赖注入与托管模型,适合构建轻量 HTTP API。
- [NLog](https://github.com/NLog/NLog)
- 功能丰富的日志库,支持多目标、异步写入、滚动策略与灵活配置。