Naples 1.0.0
dotnet add package Naples --version 1.0.0
NuGet\Install-Package Naples -Version 1.0.0
<PackageReference Include="Naples" Version="1.0.0" />
<PackageVersion Include="Naples" Version="1.0.0" />
<PackageReference Include="Naples" />
paket add Naples --version 1.0.0
#r "nuget: Naples, 1.0.0"
#:package Naples@1.0.0
#addin nuget:?package=Naples&version=1.0.0
#tool nuget:?package=Naples&version=1.0.0
๐งต Naples ๐ฎ๐น
Naples is a simple asynchronous runtime for C#, built as a learning project inspired by the Rust library Tokio. The name is a nod to the Italian city โ and to Tokio itself, which is also named after a city.
How does it work
- Waker: holds a callback and fires it once when signaled, telling the scheduler a task is ready;
- Scheduler: maintains a queue of tasks and runs them one by one โ if a task is not completed it gets re-queued;
- Runtime: the public face of the library, exposes
Spawn()to add tasks andRun()to start the executor loop; - Channel<T>: a typed pipe between two tasks โ one side sends values with
Send(), the other receives them withTryReceive();
Example
using Naples.Core;
using Naples.Sync;
var runtime = new Runtime();
var channel = new Channel<string>();
// Task producer - sends a message
runtime.Spawn(() =>
{
channel.Send("Hi from Naples");
return Task.CompletedTask;
});
// Task consumer - receives a message
runtime.Spawn(() =>
{
if (channel.TryReceive(out var message))
Console.WriteLine(message); // "Hi from Naples!"
return Task.CompletedTask;
});
// Runs everything
runtime.Run();
The runtime runs the loop, runs the producer, then the consumer and when the queue is empty it stops.
Requirements
- Windows 10 or later
- .NET SDK 10.0 or later
How to use
To add Naples as a dependency in your C# project execute this command:
dotnet add package Naples --version 1.0.0 # In the command prompt or powershell
Now in the .csproj file should appear this line:
<PackageReference Include="Naples" Version="1.0.0" />
Limitations
- Single-threaded โ all tasks run on one thread
- Not thread-safe
- No exception handling inside tasks
- No I/O support (no timers, no sockets)
License
This project is licensed under the GNU GPL v3.0
| 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
- No dependencies.
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 |
|---|---|---|
| 1.0.0 | 96 | 6/1/2026 |
Initial release of Naples - a lightweight async runtime for C#.