90 lines
5.3 KiB
Markdown
90 lines
5.3 KiB
Markdown
# 第三方声明(THIRD-PARTY NOTICES)
|
||
|
||
本文件说明 ShrinkSDK Workspace 的第三方概念参考、依赖与对应许可证遵从情况。最后核对日期:2026-08-29。
|
||
|
||
## 结论速览
|
||
|
||
| 对象 | 关系 | 许可证 | 义务 |
|
||
| --- | --- | --- | --- |
|
||
| NeoForge / Minecraft Forge | 设计概念参考(未复制代码) | LGPL-2.1 | 无强制义务,本文档致谢 |
|
||
| MessagePipe(Cysharp) | 设计概念参考(未复制代码、未引入包) | MIT | 无强制义务,本文档致谢 |
|
||
| AlicizaX(GitHub 组织) | 无引用 | MIT / Apache-2.0 | 无 |
|
||
| Kcp-CSharp.dll | 内嵌二进制(`Assets/Modules/ShrinkNetwork/Plugins/`) | MIT | 保留版权与许可声明(见下) |
|
||
| System.Runtime.CompilerServices.Unsafe.dll | 内嵌二进制(`Assets/Modules/ShrinkNetwork/Plugins/`) | MIT | 保留版权与许可声明(见下) |
|
||
| UniTask | 包管理器依赖(不随本仓库再分发) | MIT | 许可文本随包分发 |
|
||
| MessagePack | 包管理器依赖(不随本仓库再分发) | MIT | 许可文本随包分发 |
|
||
| Newtonsoft.Json | 包管理器依赖(不随本仓库再分发) | MIT | 许可文本随包分发 |
|
||
|
||
## 概念参考归致
|
||
|
||
### NeoForge / Minecraft Forge(LGPL-2.1)
|
||
|
||
`ShrinkEventBus` 与 `ShrinkModFramework` 在 API 语义与设计思路上参考了 Forge / NeoForge:
|
||
|
||
- 五级订阅优先级 `ShrinkEventPriority.Highest / High / Normal / Low / Lowest` 对应 Forge `EventPriority`;
|
||
- `[ShrinkSubscribe(receiveCanceled: ...)]` 对应 `@SubscribeEvent(receiveCanceled = ...)`;
|
||
- `EventResult { DEFAULT, ALLOW, DENY }` 对应 Forge `Event.Result`;
|
||
- `IShrinkEventBus.Attach(object)` 的对象注册范式对应 `MinecraftForge.EVENT_BUS.register(...)`。
|
||
|
||
以上为 API 概念与命名语义层面的借鉴。实现(IL 后处理静态绑定、泛型静态槽位通道、UniTask 调度集成、写时复制 handler 快照等)均为本项目原创,未复制 NeoForge / Minecraft Forge 的任何源代码,因此不构成 LGPL-2.1 意义上的衍生作品。该边界与 `Docs/JustAnyProjectArchitectureAudit.md`(A.3 参考边界)的既有声明一致。
|
||
|
||
### MessagePipe(MIT)
|
||
|
||
MessagePipe 未作为依赖引入,EventBus 也不提供 `IPublisher/ISubscriber` 拆分或 DI 集成,与 MessagePipe 的 API 形态不构成高度相似。仅借鉴其"独立 broker + 稳定 handler 快照 + 低分配发布路径"的实现思路(见 `Docs/JustAnyProjectArchitectureAudit.md` A.3),不构成代码衍生。
|
||
|
||
### AlicizaX
|
||
|
||
本仓库及全部子模块未引用、未复制、未派生 https://github.com/AlicizaX 下任何仓库的代码或资产。
|
||
|
||
## 随本仓库分发的第三方二进制
|
||
|
||
以下 DLL 直接存放在 `Assets/Modules/ShrinkNetwork/Plugins/`,随仓库与构建产物分发,按 MIT 要求保留其版权与许可声明:
|
||
|
||
### Kcp-CSharp.dll
|
||
|
||
- 来源:https://github.com/Molth/Kcp-CSharp (NuGet 包 `Kcp-CSharp` 1.0.8)
|
||
- 用途:`ShrinkNetwork` KCP 传输层
|
||
- 许可证:MIT,Copyright (c) 2024 Nevin
|
||
- 上游协议实现 KCP:https://github.com/skywind3000/kcp ,MIT,Copyright (c) 2017 Lin Wei (skywind3000 at gmail.com)
|
||
|
||
### System.Runtime.CompilerServices.Unsafe.dll
|
||
|
||
- 来源:NuGet 包 `System.Runtime.CompilerServices.Unsafe`
|
||
- 许可证:MIT,Copyright (c) .NET Foundation and Contributors
|
||
|
||
### MIT 许可证全文(适用于上述两个组件)
|
||
|
||
```text
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||
of this software and associated documentation files (the "Software"), to deal
|
||
in the Software without restriction, including without limitation the rights
|
||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||
copies of the Software, and to permit persons to whom the Software is
|
||
furnished to do so, subject to the following conditions:
|
||
|
||
The above copyright notice and this permission notice shall be included in all
|
||
copies or substantial portions of the Software.
|
||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||
SOFTWARE.
|
||
```
|
||
|
||
## 包管理器依赖(不随本仓库再分发)
|
||
|
||
以下依赖通过 Unity Package Manager 或 NuGet 引入,许可证文本随各自包分发,此处仅作登记:
|
||
|
||
- UniTask 2.5.10 — MIT — Copyright (c) 2019 Yoshifumi Kawai / Cysharp, Inc. — https://github.com/Cysharp/UniTask
|
||
- MessagePack 3.1.4 — MIT — Copyright (c) 2017 Yoshifumi Kawai and contributors — https://github.com/MessagePack-CSharp/MessagePack-CSharp
|
||
- Newtonsoft.Json 13.0.3 — MIT — Copyright (c) 2007 James Newton-King — https://github.com/JamesNK/Newtonsoft.Json
|
||
- Unity 官方包 — 按 Unity 各自许可条款分发
|
||
|
||
## 维护者注意
|
||
|
||
- `ShrinkNetwork` 模块独立发布时,应把"随本仓库分发的第三方二进制"一节同步进该模块仓库(模块是独立公开仓库,根仓库声明不能覆盖其独立分发路径)。
|
||
- Mod SDK 导出器(`ShrinkModSdkExporter`)目前只导出 ShrinkSDK 自有程序集;若未来把上述第三方 DLL 一并打包进导出包,必须在导出包内附带对应许可声明。
|