SpawnDev.BlazorJS.WebTorrents
1.0.6
See the version list below for details.
dotnet add package SpawnDev.BlazorJS.WebTorrents --version 1.0.6
NuGet\Install-Package SpawnDev.BlazorJS.WebTorrents -Version 1.0.6
<PackageReference Include="SpawnDev.BlazorJS.WebTorrents" Version="1.0.6" />
paket add SpawnDev.BlazorJS.WebTorrents --version 1.0.6
#r "nuget: SpawnDev.BlazorJS.WebTorrents, 1.0.6"
// Install SpawnDev.BlazorJS.WebTorrents as a Cake Addin
#addin nuget:?package=SpawnDev.BlazorJS.WebTorrents&version=1.0.6
// Install SpawnDev.BlazorJS.WebTorrents as a Cake Tool
#tool nuget:?package=SpawnDev.BlazorJS.WebTorrents&version=1.0.6
SpawnDev.BlazorJS.WebTorrents
WebTorrent for Blazor WebAssembly
WebTorrent is a streaming torrent client for node.js and the browser. YEP, THAT'S RIGHT. THE BROWSER. It's written completely in JavaScript � the language of the web � so the same code works in both runtimes.
Documentation
SpawnDev.BlazorJS.WebTorrents is a collection of JSObject wrappers that allow access to the Javascript WebTorrent library. The interfaces are nearly identical. Intellisense documentation is included.
Demo
Getting started
Example Program.cs
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
using SpawnDev.BlazorJS;
using SpawnDev.BlazorJS.WebTorrents;
using SpawnDev.BlazorJS.WebTorrents.Demo;
var builder = WebAssemblyHostBuilder.CreateDefault(args);
builder.RootComponents.Add<App>("#app");
builder.RootComponents.Add<HeadOutlet>("head::after");
// Add BlazorJSRunAsync service
builder.Services.AddBlazorJSRuntime();
// Add WebTorrentService service
builder.Services.AddWebTorrentService();
// initialize BlazorJSRuntime to start app
await builder.Build().BlazorJSRunAsync();
Inject
[Inject] WebTorrentService WebTorrentService { get; set; }
WebTorrentService.Client is an instance of WebTorrent
Very basic example that adds a torrent magnet, waits for the torrent metadata to be retrieved and shows information about the torrents files. Then, the torrent and all related data is destroyed.
var bigBuckBunnyMagnet = "magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c&dn=Big+Buck+Bunny&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fbig-buck-bunny.torrent";
// add a torrent (only looking to get metadata here, so add it with the Deselect option set to true)
using var torrent = WebTorrentService.Client!.Add(bigBuckBunnyMagnet, new AddTorrentOptions { Deselect = true });
// wait for the torrent metadata to load
await torrent.WhenReady();
// show some torrent info
Console.WriteLine($"InfoHash: {torrent.InfoHash}");
Console.WriteLine($"Files: {torrent.Files.Length}");
foreach (File file in torrent.Files)
{
Console.WriteLine($"File: {file.Name} {file.Size}");
}
// destory the torrent and related resources
await torrent.DestroyAsync(new DestroyTorrentOptions { DestroyStore = true });
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 is compatible. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. |
-
net6.0
- BencodeNET (>= 5.0.0)
- Microsoft.AspNetCore.Components.WebAssembly (>= 6.0.25)
- SpawnDev.BlazorJS (>= 2.2.69)
-
net7.0
- BencodeNET (>= 5.0.0)
- Microsoft.AspNetCore.Components.WebAssembly (>= 7.0.14)
- SpawnDev.BlazorJS (>= 2.2.69)
-
net8.0
- BencodeNET (>= 5.0.0)
- Microsoft.AspNetCore.Components.WebAssembly (>= 8.0.1)
- SpawnDev.BlazorJS (>= 2.2.69)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.