Pixeval.Extensions.Common
4.4.4
See the version list below for details.
dotnet add package Pixeval.Extensions.Common --version 4.4.4
NuGet\Install-Package Pixeval.Extensions.Common -Version 4.4.4
<PackageReference Include="Pixeval.Extensions.Common" Version="4.4.4" />
<PackageVersion Include="Pixeval.Extensions.Common" Version="4.4.4" />
<PackageReference Include="Pixeval.Extensions.Common" />
paket add Pixeval.Extensions.Common --version 4.4.4
#r "nuget: Pixeval.Extensions.Common, 4.4.4"
#:package Pixeval.Extensions.Common@4.4.4
#addin nuget:?package=Pixeval.Extensions.Common&version=4.4.4
#tool nuget:?package=Pixeval.Extensions.Common&version=4.4.4
Pixeval.Extensions
本项目是Pixeval扩展功能的工具项目,被主项目(下称Pixeval)高强度依赖,所以本项目会和Pixeval同步迭代(使用相同的版本号)。
本项目通过NuGet进行分发,在NuGet上有两个包:
- Pixeval.Extensions.Common:这个包声明了Pixeval与扩展进行通信使用的接口,和一些简单的工具类。这个包会被Pixeval和下面的SDK包引用。
- Pixeval.Extensions.SDK:这个包对上一个包的接口进行了封装,降低了编写扩展的难度和工作量。扩展的开发者应该引用这个包。
关于向后兼容
本项目正处于早期开发阶段,不能保证向后兼容,但遇到相关问题欢迎与我商讨( •̀ ω •́ )✧。
C#/.NET的extension类型对本项目帮助很大,在extension功能发布后势必要对本项目进行全方位的优化,但也会尽量保持向前兼容。
关于扩展系统使用的技术
为了方便以后将Pixeval改写为AOT项目,Pixeval的扩展系统要求加载的扩展也是AOT的,所以扩展系统选择了COM + P/Invoke的技术实现。
.NET在8.0版本才实现了完全支持AOT的COM技术,所以本项目最低支持的.NET SDK是.NET 8。
由于AOT和COM系统的局限性,项目中几乎不能使用反射技术,通信时也不能使用复杂的类型(只有接口和方法,这也是为什么需要SDK项目),但好在除此之外的其他技术并没有多少限制。
为了保持各语言扩展 API 的一致性,本项目使用 .pidl(Pixeval interface definition language)文件定义接口,并统一由 生成器 生成对应语言的接口代码和 SDK。开发者在实现扩展时只需要关注接口定义和 SDK 的使用,不需要关心底层的 COM 和 P/Invoke 细节。
开发扩展
C# 扩展案例
- Pixeval.Extensions.Sample:本项目自带的简单 C# 扩展示例
- Pixeval.Extensions.ImageTransformers:Pixeval AI提升画质插件
- Pixeval.Extensions.Formats:Pixeval 下载格式扩展插件
- Pixeval.Extensions.Translators:Pixeval 翻译器插件
- Pixeval.Extensions.Downloaders:Pixeval 下载器插件
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- FluentIcons.Common (>= 2.1.326)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Pixeval.Extensions.Common:
| Package | Downloads |
|---|---|
|
Pixeval.Extensions.SDK
Package Description |
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on Pixeval.Extensions.Common:
| Repository | Stars |
|---|---|
|
Pixeval/Pixeval
Wow. Yet another Pixiv client!
|
| Version | Downloads | Last Updated |
|---|---|---|
| 4.4.5 | 246 | 6/15/2026 |
| 4.4.4 | 153 | 6/10/2026 |
| 4.4.3 | 297 | 5/22/2026 |
| 4.4.2 | 126 | 5/22/2026 |
| 4.4.1 | 117 | 5/21/2026 |
| 4.4.0 | 194 | 1/12/2026 |
| 4.3.11 | 888 | 3/29/2025 |
| 4.3.9 | 316 | 3/10/2025 |
| 4.3.9-dev-4 | 276 | 3/9/2025 |
| 4.3.9-dev-3 | 193 | 2/27/2025 |
| 4.3.9-dev-2 | 207 | 2/27/2025 |
| 4.3.9-dev-1 | 672 | 2/22/2025 |
| 4.3.6 | 332 | 2/13/2025 |
| 4.3.5-dev-2 | 219 | 2/12/2025 |
| 4.3.5-dev-1 | 223 | 2/2/2025 |
| 4.3.4 | 347 | 1/13/2025 |
| 4.3.3 | 241 | 1/5/2025 |