LinuxCore 0.3.2
dotnet add package LinuxCore --version 0.3.2
NuGet\Install-Package LinuxCore -Version 0.3.2
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="LinuxCore" Version="0.3.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="LinuxCore" Version="0.3.2" />
<PackageReference Include="LinuxCore" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add LinuxCore --version 0.3.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: LinuxCore, 0.3.2"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package LinuxCore@0.3.2
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=LinuxCore&version=0.3.2
#tool nuget:?package=LinuxCore&version=0.3.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
LinuxCore
A thin, AOT-compatible .NET wrapper around Linux libc APIs. Provides ergonomic, low-allocation C# abstractions over raw syscalls for files, sockets, events, polling, scheduling, and more.
Features
- File I/O —
LinuxFileforopen/read/write/seek/fstatwithSpan<byte>support - Memory Files —
LinuxMemoryFileformemfd_createand memfd seals viafcntl - Events & Semaphores —
LinuxEventandLinuxSemaphorebacked byeventfd - Polling —
LinuxPollforpoll()-based readiness notification - Clocks —
LinuxClockfor nanosecond-precision monotonic and wall-clock (CLOCK_REALTIME) timestamps - Scheduling —
LinuxSchedulerforsched_setscheduler/sched_getscheduler(FIFO, RR, etc.) - Resource Limits —
LinuxResourceLimitforgetrlimit/setrlimit - Cancellation —
LinuxCancellationTokenbridgesCancellationTokento native poll - Sockets —
UnixSocketfor AF_UNIX sockets andLinuxSocketBasefor shared raw socket operations - System Configuration —
SystemConfigurationforsysconf()queries (page size, max open files, etc.) - Users & Groups —
LinuxUserandLinuxGroupfor passwd/group lookups by name or ID
Requirements
- Linux (the library is annotated with
[SupportedOSPlatform("linux")]) - .NET 10+
Architecture
The library has two layers:
LinuxCore.Interop— internal P/Invoke declarations using source-generated[LibraryImport]. Each file maps to a libc subsystem.LinuxCore— public API types wrapping the interop layer with safe-ish, idiomatic C# APIs.
File-descriptor-owning types follow this hierarchy:
NativeObject (IDisposable + Finalizer)
└─ FileObject (FileDescriptor, shared I/O and descriptor-control helpers)
├─ LinuxEventBase → LinuxEvent, LinuxSemaphore
├─ LinuxSocketBase → UnixSocket
└─ LinuxFile → LinuxMemoryFile
LinuxSecurityObject (Id + Name)
├─ LinuxUser
└─ LinuxGroup
Operational notes
LinuxScheduler.Set(...)and someLinuxResourceLimit.Set(...)calls may require root privileges or Linux capabilities such asCAP_SYS_NICE/CAP_SYS_RESOURCE.- AF_UNIX pathname sockets are subject to the kernel
sockaddr_un.sun_pathlimit (108 bytes on Linux). - NativeAOT compatibility is exercised in CI on both glibc (Ubuntu) and musl (Alpine) runners via a small smoke app.
License
| 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. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net10.0
- No dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.3.2 | 35 | 4/7/2026 |
| 0.3.1 | 44 | 4/6/2026 |
| 0.3.0 | 60 | 4/2/2026 |
| 0.2.12 | 43 | 4/1/2026 |
| 0.2.11 | 36 | 3/31/2026 |
| 0.2.10 | 34 | 3/31/2026 |
| 0.2.9 | 37 | 3/31/2026 |
| 0.2.8 | 43 | 3/31/2026 |
| 0.2.7 | 43 | 3/31/2026 |
| 0.2.6 | 57 | 3/29/2026 |
| 0.2.5 | 50 | 3/29/2026 |
| 0.2.4 | 81 | 3/28/2026 |
| 0.2.3 | 102 | 3/28/2026 |
| 0.2.2 | 37 | 3/25/2026 |
| 0.2.1 | 39 | 3/25/2026 |
| 0.2.0 | 41 | 3/22/2026 |
| 0.1.15 | 95 | 2/25/2026 |
| 0.1.14 | 50 | 2/25/2026 |
| 0.1.13 | 100 | 2/23/2026 |
| 0.1.12 | 50 | 2/23/2026 |
Loading failed