FishyFlip.Xrpc
3.11.0-alpha.3
See the version list below for details.
dotnet add package FishyFlip.Xrpc --version 3.11.0-alpha.3
NuGet\Install-Package FishyFlip.Xrpc -Version 3.11.0-alpha.3
<PackageReference Include="FishyFlip.Xrpc" Version="3.11.0-alpha.3" />
<PackageVersion Include="FishyFlip.Xrpc" Version="3.11.0-alpha.3" />
<PackageReference Include="FishyFlip.Xrpc" />
paket add FishyFlip.Xrpc --version 3.11.0-alpha.3
#r "nuget: FishyFlip.Xrpc, 3.11.0-alpha.3"
#:package FishyFlip.Xrpc@3.11.0-alpha.3
#addin nuget:?package=FishyFlip.Xrpc&version=3.11.0-alpha.3&prerelease
#tool nuget:?package=FishyFlip.Xrpc&version=3.11.0-alpha.3&prerelease
FishyFlip.Xrpc - a .NET ATProtocol/Bluesky Library for XRPC endpoints
FishyFlip.Xrpc is an experimental implmentation of the ATProtocol XRPC specification through source generation. It maps the XRPC entries listed in Bluesky and other ATProtocol lexicons to ASP.NET MVC controllers. As it binds to FishyFlip's existing classes, it can handle model and parameter validation, and being source generated along with FishyFlip can map to the latest changes in the lexicons whenever a value changes. This should make it easier to keep up with the upstream sources.
As an example
public class FFBlogController : FishyFlip.Xrpc.Lexicon.Com.Whtwnd.Blog.BlogController
{
/// <inheritdoc/>
public async override Task<Results<Ok<GetAuthorPostsOutput>, ATErrorResult>> GetAuthorPostsAsync(ATDid author, CancellationToken cancellationToken = default)
{
return ATErrorResult.NotFound();
}
/// <inheritdoc/>
public async override Task<Results<Ok<GetEntryMetadataByNameOutput>, ATErrorResult>> GetEntryMetadataByNameAsync([FromQuery] ATIdentifier author, [FromQuery] string entryTitle, CancellationToken cancellationToken = default)
{
return ATErrorResult.BadRequest();
}
public async override Task<Results<Ok<GetMentionsByEntryOutput>, ATErrorResult>> GetMentionsByEntryAsync([FromQuery] ATUri postUri, CancellationToken cancellationToken = default)
{
return ATErrorResult.InternalServerError();
}
public async override Task<Results<Ok<NotifyOfNewEntryOutput>, ATErrorResult>> NotifyOfNewEntryAsync([FromBody] ATUri entryUri, CancellationToken cancellationToken = default)
{
var result = new NotifyOfNewEntryOutput();
return TypedResults.Ok(result);
}
}
This implmentation maps to the WhtWnd Lexicon XRPC endpoints, and can either return the object expected by the lexicon, or an error object that maps to the XRPC error methods.
ATErrorResult
ATErrorResult is an IResult
that maps to the listed documented expected error results, with a JSON object in a format that's expected. There is no direct list of expected response Error messages and detail messages, but the format should at least map to what Bluesky itself uses.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net9.0 is compatible. 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. |
-
net9.0
- DnsClient (>= 1.8.0)
- Duende.IdentityModel (>= 7.0.0)
- Duende.IdentityModel.OidcClient (>= 6.0.1)
- Duende.IdentityModel.OidcClient.Extensions (>= 6.0.1)
- FishyFlip (>= 3.11.0-alpha.3)
- IpfsShipyard.Ipfs.Core (>= 0.7.0)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.6)
- PeterO.Cbor (>= 5.0.0-alpha2)
- System.IdentityModel.Tokens.Jwt (>= 8.12.0)
- System.IO.Pipelines (>= 9.0.6)
- ZstdSharp.Port (>= 0.8.5)
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 |
---|---|---|
3.11.0-alpha.11 | 0 | 7/25/2025 |
3.11.0-alpha.9 | 108 | 7/23/2025 |
3.11.0-alpha.8 | 110 | 7/22/2025 |
3.11.0-alpha.7 | 108 | 7/16/2025 |
3.11.0-alpha.6 | 111 | 7/14/2025 |
3.11.0-alpha.5 | 89 | 7/11/2025 |
3.11.0-alpha.4 | 101 | 7/4/2025 |
3.11.0-alpha.3 | 61 | 6/27/2025 |
3.11.0-alpha.2 | 79 | 6/21/2025 |
3.11.0-alpha.1 | 115 | 6/16/2025 |
3.10.0 | 288 | 6/13/2025 |
3.10.0-alpha.21 | 258 | 6/13/2025 |
3.10.0-alpha.20 | 176 | 6/8/2025 |
3.10.0-alpha.19 | 125 | 6/5/2025 |
3.10.0-alpha.18 | 119 | 6/4/2025 |
3.10.0-alpha.17 | 116 | 6/3/2025 |
3.10.0-alpha.16 | 98 | 5/30/2025 |
3.10.0-alpha.15 | 119 | 5/28/2025 |
3.10.0-alpha.14 | 104 | 5/23/2025 |
3.10.0-alpha.13 | 119 | 5/22/2025 |
3.10.0-alpha.12 | 117 | 5/21/2025 |
3.10.0-alpha.11 | 120 | 5/18/2025 |
3.10.0-alpha.10 | 195 | 5/12/2025 |
3.10.0-alpha.9 | 111 | 5/11/2025 |
3.10.0-alpha.8 | 73 | 5/9/2025 |
3.10.0-alpha.7 | 122 | 5/9/2025 |
3.10.0-alpha.6 | 132 | 5/8/2025 |
3.10.0-alpha.5 | 218 | 5/7/2025 |