Juxtapose 1.0.0-dev-020
This is a prerelease version of Juxtapose.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package Juxtapose --version 1.0.0-dev-020
NuGet\Install-Package Juxtapose -Version 1.0.0-dev-020
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Juxtapose" Version="1.0.0-dev-020" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Juxtapose" Version="1.0.0-dev-020" />
<PackageReference Include="Juxtapose" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add Juxtapose --version 1.0.0-dev-020
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Juxtapose, 1.0.0-dev-020"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package Juxtapose@1.0.0-dev-020
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=Juxtapose&version=1.0.0-dev-020&prerelease
#tool nuget:?package=Juxtapose&version=1.0.0-dev-020&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Juxtapose
1. Intro
基于 SourceGenerator 的硬编码 .Net 多进程运行库。
2. Features
- 可以为
接口和静态类生成代理,无需手动编写RPC相关代码,即可进行多进程开发; - 编译时生成所有代码,运行时无显式的反射调用和动态构造;
- 支持
委托和CancellationToken类型的方法参数(其余类型未特殊处理,将会进行序列化,目前回调委托不支持嵌套和CancellationToken); - 支持
Linux、Windows(其它未测试);
3. Requirement
- .Net5.0+(其它版本没有尝试过)
4. 使用方法
4.1 引用包
<ItemGroup>
<PackageReference Include="Juxtapose" Version="1.0.*-*" />
<PackageReference Include="Juxtapose.SourceGenerator" Version="1.0.*-*" />
</ItemGroup>
4.2 建立上下文
[IllusionClass(typeof(Greeter), typeof(IGreeter), "Juxtapose.Test.GreeterAsIGreeterIllusion")]
public partial class GreeterJuxtaposeContext : JuxtaposeContext
{
}
示例代码将为Greeter生成IGreeter接口的代理类型Juxtapose.Test.GreeterAsIGreeterIllusion;
Note!!!
- 必须继承
JuxtaposeContext; - 必须标记
partial关键字;
4.3 添加入口点
在Main方法中添加入口点代码,并使用指定上下文
await JuxtaposeEntryPoint.TryAsEndpointAsync(args, GreeterJuxtaposeContext.SharedInstance);
到此已完成开发,创建类型Juxtapose.Test.GreeterAsIGreeterIllusion的对象,并调用其方法,其实际逻辑将在子进程中运行;
5. 工作逻辑
SourceGenerator在编译时生成代理类型,封装通信消息。默认使用命名管道进行进程间通信,使用System.Text.Json进行消息的序列化与反序列化。
参见示例,未完待续......
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 is compatible. net5.0-windows was computed. net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net5.0
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.0)
- System.IO.Pipelines (>= 6.0.0)
-
net6.0
- Microsoft.Extensions.Logging.Abstractions (>= 6.0.0)
- System.IO.Pipelines (>= 6.0.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.5.4 | 126 | 2/6/2026 |
| 1.5.3 | 130 | 1/20/2026 |
| 1.5.2 | 155 | 11/29/2025 |
| 1.5.1 | 235 | 11/15/2025 |
| 1.5.0 | 235 | 11/15/2025 |
| 1.4.4 | 52,608 | 11/23/2024 |
| 1.4.3 | 9,896 | 8/10/2024 |
| 1.4.2 | 6,047 | 6/11/2024 |
| 1.4.1 | 1,275 | 6/1/2024 |
| 1.4.0 | 8,349 | 11/21/2023 |
| 1.3.0 | 436 | 11/15/2023 |
| 1.2.2 | 27,949 | 12/19/2022 |
| 1.2.1 | 968 | 10/12/2022 |
| 1.2.0 | 1,019 | 10/11/2022 |
| 1.1.2 | 963 | 9/16/2022 |
| 1.1.1 | 1,006 | 7/29/2022 |
| 1.1.0 | 1,057 | 7/23/2022 |
| 1.1.0-beta0001 | 771 | 7/6/2022 |
| 1.0.2 | 1,098 | 6/19/2022 |
| 1.0.0-dev-020 | 807 | 12/7/2021 |
Loading failed