Escorp.Atom
0.10.2
dotnet add package Escorp.Atom --version 0.10.2
NuGet\Install-Package Escorp.Atom -Version 0.10.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="Escorp.Atom" Version="0.10.2" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Escorp.Atom" Version="0.10.2" />
<PackageReference Include="Escorp.Atom" />
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 Escorp.Atom --version 0.10.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: Escorp.Atom, 0.10.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 Escorp.Atom@0.10.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=Escorp.Atom&version=0.10.2
#tool nuget:?package=Escorp.Atom&version=0.10.2
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
Atom Framework
Высокопроизводительная библиотека на .NET для построения современных приложений с минимальными аллокациями памяти и поддержкой NativeAOT/Trimming.
Основные возможности
- Zero-allocation API через
Span<T>,ReadOnlySpan<T>и пулинг объектов - Thread-safe примитивы синхронизации и конкурентные коллекции
- NativeAOT-ready — все компоненты совместимы с компиляцией AOT
- Source generators для автоматизации boilerplate-кода
Модули
| Модуль | Назначение |
|---|---|
Buffers |
Пулы объектов, ObjectPool<T>, атрибут [Pooled] |
Collections |
SparseArray<T>, расширения коллекций |
Threading |
Locker, RateLimiter, Sequencer, Signal, Wait |
Text |
ValueStringBuilder, JSON-контексты, форматирование |
Algorithms |
Алгоритмы поиска подстрок (KMP, Boyer-Moore, Rabin-Karp, Z, Aho-Corasick) |
Distribution |
Определение ОС, работа с терминалом и процессами |
IO |
Консольные команды, базовый Stream для NativeAOT |
Architect |
Компонентная модель, реактивные свойства, билдеры |
Быстрый старт
Пулинг объектов
using Atom.Buffers;
// Создание пула
var pool = ObjectPool<StringBuilder>.Create(() => new StringBuilder(1024));
// Аренда и возврат
var sb = pool.Rent();
try
{
sb.Append("Hello, Atom!");
Console.WriteLine(sb.ToString());
}
finally
{
pool.Return(sb, static x => x.Clear());
}
Высокопроизводительный StringBuilder
using Atom.Text;
using var builder = new ValueStringBuilder(256);
builder.Append("User: ")
.Append(42)
.Append(", Status: ")
.Append(true);
Console.WriteLine(builder.ToString());
Ограничение частоты запросов
using Atom.Threading;
var limiter = new RateLimiter(limit: 10, rate: TimeSpan.FromSeconds(1));
for (int i = 0; i < 50; i++)
{
await limiter.CallAsync(() => Console.WriteLine($"Request {i}"));
}
Алгоритмы поиска подстрок
using Atom.Algorithms.Text;
var algorithm = new BoyerMooreAlgorithm();
var text = "The quick brown fox jumps over the lazy dog";
var pattern = "fox";
bool found = algorithm.Contains(text, pattern, StringComparison.Ordinal);
int count = algorithm.CountOf(text, "the", StringComparison.OrdinalIgnoreCase);
Разрежённый массив
using Atom.Collections;
var sparse = new SparseArray<int>(capacity: 100);
sparse[0] = 42;
sparse[50] = 100;
foreach (var value in sparse)
{
Console.WriteLine(value); // Итерация только по установленным значениям
}
sparse.Release(clearArray: true); // Возврат памяти в пул
Требования
- .NET 8.0+ / .NET 10.0 (рекомендуется)
- C# 12+ (preview features)
Сборка
dotnet build Atom.slnx
Тестирование
dotnet test Atom.slnx
Документация
Подробная документация по каждому модулю находится в соответствующих README.md файлах внутри директорий модулей.
Лицензия
См. файл 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
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.5)
NuGet packages (6)
Showing the top 5 NuGet packages that depend on Escorp.Atom:
| Package | Downloads |
|---|---|
|
Escorp.Atom.Debug
Package Description |
|
|
Escorp.Atom.Media
Package Description |
|
|
Escorp.Atom.Web
Package Description |
|
|
Escorp.Atom.IO.Compression
Package Description |
|
|
Escorp.Atom.Net
Package Description |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.10.2 | 134 | 4/3/2026 |
| 0.10.1 | 111 | 4/2/2026 |
| 0.10.0 | 125 | 1/14/2026 |
| 0.9.9 | 144 | 1/9/2026 |
| 0.9.8 | 539 | 12/11/2025 |
| 0.9.7 | 469 | 12/9/2025 |
| 0.9.6 | 446 | 12/8/2025 |
| 0.9.5 | 434 | 12/5/2025 |
| 0.9.4 | 174 | 11/30/2025 |
| 0.9.3 | 204 | 11/27/2025 |
| 0.9.2 | 302 | 11/14/2025 |
| 0.9.1 | 262 | 11/14/2025 |
| 0.9.0 | 346 | 11/13/2025 |
| 0.8.8 | 202 | 10/12/2025 |
| 0.8.7 | 226 | 9/6/2025 |
| 0.8.6 | 255 | 9/5/2025 |
| 0.8.5 | 263 | 4/9/2025 |
| 0.8.4 | 254 | 4/8/2025 |
| 0.8.3 | 229 | 4/7/2025 |
| 0.8.2 | 231 | 4/6/2025 |
Loading failed