Zeayii.Vexo.Assembly.Offline
0.0.37
dotnet add package Zeayii.Vexo.Assembly.Offline --version 0.0.37
NuGet\Install-Package Zeayii.Vexo.Assembly.Offline -Version 0.0.37
<PackageReference Include="Zeayii.Vexo.Assembly.Offline" Version="0.0.37" />
<PackageVersion Include="Zeayii.Vexo.Assembly.Offline" Version="0.0.37" />
<PackageReference Include="Zeayii.Vexo.Assembly.Offline" />
paket add Zeayii.Vexo.Assembly.Offline --version 0.0.37
#r "nuget: Zeayii.Vexo.Assembly.Offline, 0.0.37"
#:package Zeayii.Vexo.Assembly.Offline@0.0.37
#addin nuget:?package=Zeayii.Vexo.Assembly.Offline&version=0.0.37
#tool nuget:?package=Zeayii.Vexo.Assembly.Offline&version=0.0.37
Zeayii.Vexo.Assembly.Offline
English | 简体中文
Organization: zeayii
Project: vexo
1. Overview
Zeayii.Vexo.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:
Zeayii.Vexo.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 │
│ Zeayii.Vexo.Assembly.Offline │
└────────────────────────────────────────────┘
│
▼
┌────────────────────────────────────────────┐
│ Contract Layer │
│ Zeayii.Vexo.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
TaskExecutionUnit
Additional note: dictionary-shaped inputs in OfflineTaskInput (keys / headers / cookies / request-attributes)
explicitly declare DefaultValue = "{}" in command metadata, so generators can keep a stable
"optional with empty-dictionary default" semantic.
In addition, Offline exposes a sample OfflineTaskAssemblyOrchestrator:
- 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.Assembly (>= 0.0.37)
- Zeayii.Vexo.Assembly.Abstractions (>= 0.0.37)
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.37 | 156 | 5/17/2026 |
| 0.0.36 | 104 | 5/16/2026 |
| 0.0.35 | 109 | 5/16/2026 |
| 0.0.34 | 108 | 5/16/2026 |
| 0.0.33 | 113 | 5/4/2026 |
| 0.0.32 | 142 | 4/5/2026 |
| 0.0.31 | 116 | 4/5/2026 |
| 0.0.30 | 164 | 3/28/2026 |
| 0.0.29 | 108 | 3/26/2026 |
| 0.0.28 | 106 | 3/26/2026 |
| 0.0.27 | 109 | 3/26/2026 |
| 0.0.26 | 120 | 3/16/2026 |
| 0.0.25 | 111 | 3/15/2026 |
| 0.0.24 | 114 | 3/15/2026 |
| 0.0.23 | 116 | 3/14/2026 |
| 0.0.22 | 106 | 3/14/2026 |
| 0.0.21 | 110 | 3/14/2026 |
| 0.0.20 | 112 | 3/14/2026 |
| 0.0.19 | 111 | 3/13/2026 |
| 0.0.18 | 109 | 3/13/2026 |