Zeayii.Vexo.Task.Assembly.Offline 0.0.32

dotnet add package Zeayii.Vexo.Task.Assembly.Offline --version 0.0.32
                    
NuGet\Install-Package Zeayii.Vexo.Task.Assembly.Offline -Version 0.0.32
                    
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="Zeayii.Vexo.Task.Assembly.Offline" Version="0.0.32" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Zeayii.Vexo.Task.Assembly.Offline" Version="0.0.32" />
                    
Directory.Packages.props
<PackageReference Include="Zeayii.Vexo.Task.Assembly.Offline" />
                    
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 Zeayii.Vexo.Task.Assembly.Offline --version 0.0.32
                    
#r "nuget: Zeayii.Vexo.Task.Assembly.Offline, 0.0.32"
                    
#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 Zeayii.Vexo.Task.Assembly.Offline@0.0.32
                    
#: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=Zeayii.Vexo.Task.Assembly.Offline&version=0.0.32
                    
Install as a Cake Addin
#tool nuget:?package=Zeayii.Vexo.Task.Assembly.Offline&version=0.0.32
                    
Install as a Cake Tool

Vexo.Task.Assembly.Offline

English | 简体中文

Organization: zeayii
Project: vexo


1. Overview

Vexo.Task.Assembly.Offline is the official reference implementation of the Vexo Task Assembly system for offline, non-authenticated scenarios.

This module demonstrates how to implement a complete task assembler without DRM, login, provider routing, or execution logic, while strictly adhering to the contracts defined by:

  • Vexo.Task.Assembly.Abstractions

Its primary role is educational and architectural: to show how a correct, production-grade assembler should be structured.


2. Architectural Position

┌────────────────────────────────────────────┐
│ Implementation Layer                       │
│ Vexo.Task.Assembly.Offline                 │
└────────────────────────────────────────────┘
                    │
                    ▼
┌────────────────────────────────────────────┐
│ Contract Layer                             │
│ Vexo.Task.Assembly.Abstractions            │
└────────────────────────────────────────────┘
                    │
                    ▼
┌────────────────────────────────────────────┐
│ Execution Layer                            │
│ (Pipeline / Workers / Merge)               │
└────────────────────────────────────────────┘

Offline assembly sits above capability layers (Media, Manifest) and below execution, acting purely as an adapter.


3. Design Goals

  1. Reference-Grade Implementation

    • Demonstrates correct usage of Assembly abstractions
    • Serves as a template for private or vendor-specific assemblers
  2. Extreme Responsibility Control

    • No parsing logic
    • No execution logic
    • No provider or DRM knowledge
  3. Offline & Open-Source Safe

    • No authentication
    • No license handling
    • No sensitive algorithms
  4. Enterprise-Ready Structure

    • Clear layering
    • Explicit failure boundaries
    • Deterministic behavior

4. What Offline Assembly Does

Offline assembly performs only orchestration:

  1. Validates TaskDescriptor
  2. Accepts OfflineTaskInput
  3. Delegates parsing to Manifest / Media
  4. Adapts parsed results into execution metadata
  5. Produces a fully populated TaskWorkUnit

In addition, Offline exposes a sample OfflineTaskAssemblyProvider:

  • Demonstrates how private providers should implement the provider contract
  • Explicitly shows how flattened offline input fields are assembled into internal session context in PrepareAsync
  • Keeps actual assembly execution on the CoreTaskAssembler pipeline

5. What Offline Assembly Does NOT Do

Explicitly excluded responsibilities:

  • Parsing MPD or M3U8 files
  • Parsing init or index segments
  • Resolving DRM keys
  • Performing network authentication
  • Downloading or merging media
  • Managing concurrency or retries

Any such logic belongs to capability or execution layers.


6. CoreTaskAssembler

CoreTaskAssembler is the only public entry point.

Key characteristics:

  • Stateless
  • Deterministic
  • Throws on failure
  • Does not attempt protocol inference

Protocol handling is delegated to adapters.


7. Adapter-Based Design

Offline assembly uses protocol adapters:

  • DashAssemblyAdapter
  • HlsAssemblyAdapter

Why Adapters?

  • Manifest and Media already provide parsing
  • Offline layer only needs transformation
  • Adapters prevent protocol branching pollution

This keeps CoreTaskAssembler minimal and stable.


8. Error Handling Strategy

Offline assembly follows strict failure semantics:

  • Partial metadata is never returned
  • All failures abort the current task
  • Errors are surfaced as exceptions

Exception usage:

  • Contract violations → Abstractions exceptions
  • Implementation failures → OfflineAssemblyException

9. Performance & AOT Considerations

  • No reflection
  • No dynamic dispatch
  • No runtime plugin discovery
  • Minimal allocations

Offline assembly is fully compatible with:

  • NativeAOT
  • IL trimming

10. Extending Offline Assembly

This module is intended as a blueprint.

To implement a new assembler:

  1. Copy the structural pattern
  2. Replace OfflineTaskInput
  3. Implement new adapters
  4. Keep the same abstraction boundary

11. Versioning & Stability

  • May evolve faster than Abstractions
  • Not guaranteed backward compatibility
  • Changes favor clarity over convenience

This module contains no DRM or restricted logic. It is safe for open-source distribution and reference use.

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.

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
0.0.32 123 2/20/2026
0.0.31 118 2/20/2026
0.0.30 115 2/19/2026
0.0.29 112 2/19/2026
0.0.28 114 2/19/2026
0.0.27 110 2/19/2026
0.0.26 112 2/18/2026
0.0.25 109 2/18/2026
0.0.24 113 2/17/2026
0.0.23 116 2/16/2026
0.0.22 112 2/16/2026
0.0.21 112 2/16/2026
0.0.20 114 2/15/2026
0.0.19 112 2/15/2026
0.0.18 129 1/3/2026
0.0.17 125 1/1/2026
0.0.16 127 1/1/2026
0.0.15 125 1/1/2026
0.0.14 134 12/31/2025
0.0.13 123 12/30/2025
Loading failed