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
<PackageReference Include="Zeayii.Vexo.Task.Assembly.Offline" Version="0.0.32" />
<PackageVersion Include="Zeayii.Vexo.Task.Assembly.Offline" Version="0.0.32" />
<PackageReference Include="Zeayii.Vexo.Task.Assembly.Offline" />
paket add Zeayii.Vexo.Task.Assembly.Offline --version 0.0.32
#r "nuget: Zeayii.Vexo.Task.Assembly.Offline, 0.0.32"
#:package Zeayii.Vexo.Task.Assembly.Offline@0.0.32
#addin nuget:?package=Zeayii.Vexo.Task.Assembly.Offline&version=0.0.32
#tool nuget:?package=Zeayii.Vexo.Task.Assembly.Offline&version=0.0.32
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
Reference-Grade Implementation
- Demonstrates correct usage of Assembly abstractions
- Serves as a template for private or vendor-specific assemblers
Extreme Responsibility Control
- No parsing logic
- No execution logic
- No provider or DRM knowledge
Offline & Open-Source Safe
- No authentication
- No license handling
- No sensitive algorithms
Enterprise-Ready Structure
- Clear layering
- Explicit failure boundaries
- Deterministic behavior
4. What Offline Assembly Does
Offline assembly performs only orchestration:
- Validates
TaskDescriptor - Accepts
OfflineTaskInput - Delegates parsing to
Manifest/Media - Adapts parsed results into execution metadata
- 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
CoreTaskAssemblerpipeline
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:
DashAssemblyAdapterHlsAssemblyAdapter
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:
- Copy the structural pattern
- Replace
OfflineTaskInput - Implement new adapters
- Keep the same abstraction boundary
11. Versioning & Stability
- May evolve faster than Abstractions
- Not guaranteed backward compatibility
- Changes favor clarity over convenience
12. License & Legal
This module contains no DRM or restricted logic. It is safe for open-source distribution and reference use.
| Product | Versions 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. |
-
net10.0
- Zeayii.Vexo.Task.Assembly.Abstractions (>= 0.0.32)
- Zeayii.Vexo.Task.Assembly.Core (>= 0.0.32)
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 |