YouVersion.UsfmReferences.Unofficial 3.1.1

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package YouVersion.UsfmReferences.Unofficial --version 3.1.1
                    
NuGet\Install-Package YouVersion.UsfmReferences.Unofficial -Version 3.1.1
                    
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="YouVersion.UsfmReferences.Unofficial" Version="3.1.1" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="YouVersion.UsfmReferences.Unofficial" Version="3.1.1" />
                    
Directory.Packages.props
<PackageReference Include="YouVersion.UsfmReferences.Unofficial" />
                    
Project file
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 YouVersion.UsfmReferences.Unofficial --version 3.1.1
                    
#r "nuget: YouVersion.UsfmReferences.Unofficial, 3.1.1"
                    
#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 YouVersion.UsfmReferences.Unofficial@3.1.1
                    
#: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=YouVersion.UsfmReferences.Unofficial&version=3.1.1
                    
Install as a Cake Addin
#tool nuget:?package=YouVersion.UsfmReferences.Unofficial&version=3.1.1
                    
Install as a Cake Tool

YouVersion Platform SDK for .NET

CI License: MIT

An unofficial .NET SDK for the YouVersion Platform REST API — typed HTTP clients, OAuth/PKCE authentication, and Blazor components for browsing Bible versions, reading passages, and managing highlights.

Not affiliated with or endorsed by YouVersion / Life.Church. This is an independent, community implementation built against YouVersion's public Platform API.

See it in action: PlatformTestApp is a full working sample app. It shows both the all-in-one <BibleReader> component and a composite reader built from the individual pickers, so you can see exactly how to assemble your own UI — including the OAuth/PKCE sign-in flow and click-to-highlight components. If you're not using Blazor, PlatformConsoleSample is a minimal console app showing the same API clients called directly from a plain .NET Generic Host.

Packages

Package Description
YouVersion.Platform.API.Models.Unofficial Zero-dependency domain model types (Versions, Books, Chapters, Verses, Passages, Highlights).
YouVersion.Platform.API.Unofficial Typed HTTP clients, OAuth+PKCE, caching decorators, resilience/rate-limiting pipeline, DI wiring.
YouVersion.Platform.SDK.Services.Unofficial Business-logic services (VersionService, PassageService, BookService, HighlightService, BibleReaderStateService) sitting between the raw API client and the UI layer.
YouVersion.Platform.SDK.Components.Unofficial Blazor components: version/book/chapter/verse pickers, BibleReader, click-to-highlight VerseComponent, YouVersionAuth.
YouVersion.UsfmReferences.Unofficial Independent, unofficial C# port of youversion/usfm-references for parsing/validating USFM scripture references. Versioned separately from the Platform.* packages.

See each package's own README (linked above, and published alongside it on NuGet) for installation and usage details.

Which package(s) do I need?

If you want to... Install
Call the Platform API directly (versions, passages, highlights) from a backend, console app, Azure Function, etc. — no UI YouVersion.Platform.API.Models.Unofficial + YouVersion.Platform.API.Unofficial
Sign users in via OAuth/PKCE and call the API on their behalf, still with no UI Same as above — OAuth lives in Platform.API. See Platform.API/README.md and the OAuth/PKCE guide.
Build your own UI (not Blazor, or a custom Blazor UI) on top of ready-made business logic (highlight toggling, reader state, etc.) instead of raw HTTP calls Add YouVersion.Platform.SDK.Services.Unofficial
Build a Blazor app and want ready-made UI — pickers, BibleReader, click-to-highlight, the YouVersionAuth sign-in widget YouVersion.Platform.SDK.Components.Unofficial (pulls in Services, API, and Models transitively — just install this one)
Parse or validate USFM scripture references, unrelated to the Platform API YouVersion.UsfmReferences.Unofficial only

In short: install the highest package in the list that matches what you're building — its NuGet dependencies pull in everything below it automatically. Only reach for Platform.API / Platform.SDK.Services directly if you're deliberately building your own UI layer instead of using Platform.SDK.Components.

Architecture

Platform.API.Models        (POCO/records, zero dependencies)
        ^
        |
Platform.API                (typed HTTP clients, OAuth+PKCE, caching decorators, DI wiring)
        ^
        |
Platform.SDK.Services        (service abstractions + BibleReaderStateService)
        ^
        |
Platform.SDK.Components      (Razor components: pickers, BibleReader, YouVersionAuth)
        ^
        |
PlatformTestApp              (Blazor Server sample host, OAuth endpoints, demo pages)

Dependency direction is enforced automatically, not just by convention: an architecture-fitness test (Platform.API.Tests/Architecture/ApiClientBoundaryTests.cs) fails the build if PlatformTestApp / Platform.SDK.Components reference Platform.API client types directly instead of going through Platform.SDK.Services.

See docs/adr/ for the reasoning behind this and other architectural decisions (caching, rate limiting, package naming/versioning, the auth session abstraction).

PlatformTestApp is a working sample host demonstrating two consumption patterns — the all-in-one <BibleReader> component (/) and manual step-by-step composition (/custom-reader) — plus the full OAuth/PKCE sign-in flow.

Quickstart

dotnet add package YouVersion.Platform.API.Models.Unofficial
dotnet add package YouVersion.Platform.API.Unofficial
builder.Services.AddYouVersionApiClients(options =>
{
    options.AppKey = builder.Configuration["YouVersionApi:AppKey"]!;
});

For the full Blazor UI layer (pickers, reader, highlighting) add YouVersion.Platform.SDK.Components.Unofficial instead — it pulls in Services and API transitively. See Platform.API/README.md for OAuth setup and Platform.SDK.Components/README.md for the component walkthrough.

Versioning & Releases

Package versions are derived automatically from git tags via MinVer (Directory.Build.props) — there is no hand-edited version number to keep in sync across five projects. To cut a release: tag the commit vX.Y.Z (e.g. v1.0.0) and push the tag; publishing to NuGet.org happens via .github/workflows/nuget-publish.yml, triggered by publishing a GitHub Release against that tag. Untagged commits build as 0.0.0-alpha.0.N prereleases automatically — safe to build and test locally or in CI, but not intended to be published.

YouVersion.UsfmReferences.Unofficial carries its own explicit <Version> (not MinVer-derived) since it tracks the upstream Python library's release cadence independently of the Platform.* packages.

Status: tagged releases have been cut (v0.1.0, v0.1.1, v0.1.2) and all five packages are published and consumable from NuGet.org. See CHANGELOG.md for what shipped in each release.

Building & testing

dotnet build
dotnet test

CI (.github/workflows/ci.yml) builds each library in dependency order, packs them to a local NuGet feed, runs the full test suite, and builds PlatformTestApp against the packed output — so the sample app exercises the same NuGet-consumer experience real consumers will get, not just project references.

License

MIT — see LICENSE.

Product Compatible and additional computed target framework versions.
.NET net10.0 is compatible.  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.
  • net10.0

    • No dependencies.

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

Initial .NET release. Feature-equivalent port of usfm-references 3.1.1.