A library for creating .NET Web Worker threads and enabling multithreading in client-side Blazor applications.
BlazorWorker is a library that provides a simple API for exposing .NET web workers in client-side Blazor, enabling parallel execution and isolated processes in the browser. It allows developers to offload CPU-intensive tasks to separate threads without blocking the UI, improving performance and responsiveness in Blazor applications.
Client-side Blazor developers building applications that require parallel execution of CPU-intensive tasks, such as data processing, complex calculations, or background operations, without blocking the main UI thread.
Developers choose BlazorWorker because it brings true multithreading to client-side Blazor via web workers, offering both a high-level, strongly typed API for simplicity and a low-level API for fine-grained control, with support for dependency injection and custom serialization.
Library for creating DotNet Web Worker threads/multithreading in Client side Blazor
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Offers both a high-level BackgroundService for strongly typed simplicity and a low-level Core API for string-based, chatty performance, as described in the README's use case recommendations.
Supports injection of HttpClient and IWorkerMessageService into worker services, enabling HTTP calls and low-level messaging, with examples for extending to full IOC using Microsoft.Extensions.DependencyInjection.
Allows configurable expression serialization via IExpressionSerializer, so developers can add known types or switch libraries when default Serialize.Linq fails with abstract classes, per the serialization notes.
Provides environment variable settings to handle non-invariant cultures in workers, addressing common globalization issues in .NET 6+ by allowing custom culture support.
Default serialization can fail with complex or abstract types, forcing developers to implement custom IExpressionSerializer or add KnownTypeAttributes, adding setup overhead.
Only HttpClient and IWorkerMessageService are injectable by default; other dependencies require manual factory patterns or full IOC setup, as admitted in the injectable services section.
BackgroundService uses expression serialization that introduces messaging latency, making it less ideal for chatty scenarios compared to the Core API, which uses plain strings.