Novolis.Transports.WireFish
2026.1.11.61
dotnet add package Novolis.Transports.WireFish --version 2026.1.11.61
NuGet\Install-Package Novolis.Transports.WireFish -Version 2026.1.11.61
<PackageReference Include="Novolis.Transports.WireFish" Version="2026.1.11.61" />
<PackageVersion Include="Novolis.Transports.WireFish" Version="2026.1.11.61" />
<PackageReference Include="Novolis.Transports.WireFish" />
paket add Novolis.Transports.WireFish --version 2026.1.11.61
#r "nuget: Novolis.Transports.WireFish, 2026.1.11.61"
#:package Novolis.Transports.WireFish@2026.1.11.61
#addin nuget:?package=Novolis.Transports.WireFish&version=2026.1.11.61
#tool nuget:?package=Novolis.Transports.WireFish&version=2026.1.11.61
Novolis.Transports.WireFish
Live packet capture (SharpPcap) with Novolis.Messaging.Channels and hosted IPacketHandler dispatch. Migrated from Frank.WireFish / novolis-wirefish.
Install
dotnet add package Novolis.Transports.WireFish
Prerequisites: .NET 10 SDK (net10.0), Npcap (Windows) or libpcap. Elevation may be required to start the Npcap service.
Quick start
using Novolis.Transports.WireFish;
builder.Services.AddNovolisWireFish(
w => w.AddPacketHandler<MyPacketHandler>(),
o =>
{
o.BpfFilter = "tcp port 443";
o.CaptureAllDevices = false;
o.DeviceNames = ["\\Device\\NPF_{...}"];
});
Handler template:
public sealed class MyPacketHandler : IPacketHandler
{
public bool CanHandle(DevicePacket packet) => packet.IsTcp();
public Task HandleAsync(DevicePacket packet, CancellationToken cancellationToken) => Task.CompletedTask;
}
Device discovery and startup health:
var devices = WireFishCaptureDevices.List();
var health = WireFishCaptureHealthChecks.Check();
WireFishCaptureHealthChecks.TryEnsureCaptureDriver();
Presentation helpers (no PacketDotNet in public signatures): DevicePacketExtensions, PacketPresentation.
API
| Type | Role |
|---|---|
ServiceCollectionExtensions.AddNovolisWireFish |
Register handlers + hosted capture |
IWireFishBuilder |
AddPacketHandler<THandler>() |
WireFishOptions |
CaptureAllDevices, DeviceNames, BpfFilter, PromiscuousMode, AllowNoCaptureDevices |
DevicePacket |
(Device, Packet, Timestamp) capture unit |
IPacketHandler |
CanHandle, HandleAsync |
WireFishCaptureDevices |
List(), Refresh(), Any() |
WireFishCaptureHealthChecks |
Driver/service readiness checks |
WireFishCaptureHealth |
(IsReady, Message) |
PacketPresentation / PacketDetailNode |
UI-friendly formatting and protocol tree |
Dogfooding / apps
Used by WireFishViewer (novolis-dogfooding) for live capture UI.
Related
| Package | Role |
|---|---|
Novolis.Messaging.Channels |
Channel<DevicePacket> pipeline |
novolis-wirefish |
Redirect repo — use this package instead |
More documentation
Support
Pre-release.
| 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
- Bitvantage.Ethernet.OuiDatabase (>= 1.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.12)
- Microsoft.Extensions.Options (>= 10.0.12)
- Microsoft.Extensions.Options.ConfigurationExtensions (>= 10.0.12)
- Novolis.Messaging.Channels (>= 2026.1.11.61)
- SharpPcap (>= 6.3.1)
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 |
|---|---|---|
| 2026.1.11.61 | 84 | 10/4/2026 |
| 2026.1.1.60 | 91 | 10/4/2026 |
| 2026.1.1.58 | 94 | 10/3/2026 |
| 2026.1.1.57 | 90 | 10/1/2026 |
| 2026.1.1.56 | 89 | 9/30/2026 |