Afrowave.AJIS.IO
1.1.0
dotnet add package Afrowave.AJIS.IO --version 1.1.0
NuGet\Install-Package Afrowave.AJIS.IO -Version 1.1.0
<PackageReference Include="Afrowave.AJIS.IO" Version="1.1.0" />
<PackageVersion Include="Afrowave.AJIS.IO" Version="1.1.0" />
<PackageReference Include="Afrowave.AJIS.IO" />
paket add Afrowave.AJIS.IO --version 1.1.0
#r "nuget: Afrowave.AJIS.IO, 1.1.0"
#:package Afrowave.AJIS.IO@1.1.0
#addin nuget:?package=Afrowave.AJIS.IO&version=1.1.0
#tool nuget:?package=Afrowave.AJIS.IO&version=1.1.0
Afrowave.AJIS.IO
File-level operations and streaming I/O for the AJIS (.NET) framework. Provides high-performance file CRUD operations, indexed lookups, LINQ queries, and async streaming I/O for processing large datasets.
Overview
The IO library enables file-based data storage using the AJIS format with enterprise-grade features:
- File-level operations - Create, read, update, delete operations for AJIS files
- Indexed lookups - Fast key-based lookups (up to 10x faster than enumeration)
- LINQ support - Query AJIS files using LINQ expressions
- Async streaming - Memory-efficient processing of multi-GB files
- Partial I/O - Search, replace, and read specific segments without loading entire file
- Memory-mapped files - Support for files larger than available memory
Features
- High-level file operations -
AjisFilestatic class with CRUD methods - Indexed access -
AjisFileIndex<T>for O(1) key-based lookups - LINQ queries -
AjisQueryprovider with Where, OrderBy, Skip, Take, Select, aggregations - Aggregations - Count, Sum, Average, Min, Max, Any, All, Distinct operations
- Streaming I/O - Memory-bounded file operations via async enumerables
- Memory-mapped support - Large file processing via
MemoryMappedFile - Async by default - All file operations support async patterns
Installation
dotnet add package Afrowave.AJIS.IO
API
See the API Reference for complete documentation.
Key Types
| Type | Description |
|---|---|
AjisFile |
Static class with file CRUD operations |
AjisFileIndex<T> |
Index for fast key-based lookups |
AjisQuery |
LINQ query provider for AJIS files |
AjisAggregations |
Aggregation utilities |
AjisFileReader |
Streaming file reader |
AjisFileWriter |
Streaming file writer |
Dependencies
- Afrowave.AJIS.Core - Core contracts and settings
- Afrowave.AJIS.Streaming - Segment parser
- Afrowave.AJIS.Serialization - Serializer and value types
Usage
Basic file operations
using Afrowave.AJIS.IO;
var users = new[] {
new User { Id = 1, Name = "Alice" },
new User { Id = 2, Name = "Bob" }
};
// Create file
AjisFile.Create("users.ajis", users);
// Read all items
var allUsers = AjisFile.ReadAll<User>("users.ajis");
// Stream items
await foreach (var user in AjisFile.EnumerateAsync<User>("users.ajis"))
{
ProcessUser(user);
}
Indexed lookups
// Build index
var index = AjisFile.CreateIndex<User>("users.ajis", u => u.Id);
// Fast lookup
var user = index.FindByKey(1);
LINQ queries
var activeUsers = AjisQuery.FromFile<User>("users.ajis")
.Where(u => u.IsActive)
.OrderBy(u => u.Name)
.Skip(10)
.Take(20)
.ToList();
Aggregations
var count = AjisQuery.FromFile<User>("users.ajis").Count();
var avgPoints = AjisQuery.FromFile<User>("users.ajis").Average(u => u.Points);
var maxAge = AjisQuery.FromFile<User>("users.ajis").Max(u => u.Age);
Documentation
- API Reference - Complete API documentation
- Getting Started - Quick start guide
- Architecture - Repository architecture
- File Operations - File I/O details
- Querying - LINQ documentation
Compatibility
- .NET 10.0+
- Nullable reference types enabled
License
MIT
| 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
- Afrowave.AJIS.Core (>= 1.1.0)
- Afrowave.AJIS.Serialization (>= 1.1.0)
- Afrowave.AJIS.Streaming (>= 1.1.0)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Afrowave.AJIS.IO:
| Package | Downloads |
|---|---|
|
Afrowave.AJIS.Net
NET library for Ajis framework |
GitHub repositories
This package is not used by any popular GitHub repositories.
## v1.1.0 (2026-02-16)
### New Features
- Integration with new Ajis static API from Afrowave.AJIS.Core v1.1.0
### Dependencies
- Afrowave.AJIS.Core v1.1.0
### Notes
- No breaking changes in this release