The DevelApp.CognitiveGraph library is designed to work on all platforms supported by .NET 8, with specific considerations for the zero-copy memory architecture.
Primary Supported Platforms
Platform
Architecture
Status
Notes
Windows
x64, x86, ARM64
✅ Full Support
Native memory operations optimized
Linux
x64, ARM64
✅ Full Support
Tested on Ubuntu, CentOS, Alpine
macOS
x64, ARM64 (Apple Silicon)
✅ Full Support
Optimized for M1/M2 processors
.NET Runtime Compatibility
Target Framework: .NET 8.0
Minimum Runtime: .NET 8.0.0
Language Version: C# 12.0
Memory and Performance Characteristics
Zero-Copy Architecture
Uses Span<T> and ReadOnlySpan<T> for allocation-free memory access
Requires AllowUnsafeBlocks=true for direct memory operations
Memory layout is platform-agnostic (little-endian byte order)
Platform-Specific Optimizations
x64/ARM64: Optimized memory alignment for 64-bit architectures
32-bit platforms: Supported but with reduced performance for large graphs
Memory-mapped files: Available on all platforms for massive datasets
Threading and Concurrency
Thread-safe: Read operations are fully thread-safe
Concurrent access: Multiple threads can safely read from the same graph
Write operations: Graph building is single-threaded by design
Deployment Scenarios
Self-Contained Deployment
<PropertyGroup><PublishSingleFile>true</PublishSingleFile><SelfContained>true</SelfContained><RuntimeIdentifier>win-x64</RuntimeIdentifier><!-- or linux-x64, osx-x64, etc. --></PropertyGroup>
Framework-Dependent Deployment
Requires .NET 8 runtime on target machine
Smaller deployment size
Cross-platform binaries
Container Support
Compatible with Docker containers
Works in Alpine Linux containers (mcr.microsoft.com/dotnet/runtime:8.0-alpine)
No special container configuration required
Known Limitations
Architecture Limitations
Big-endian systems: Not explicitly tested (rare in modern environments)
32-bit memory limits: Large graphs (>2GB) not supported on 32-bit systems
Platform-Specific Notes
Windows
Full support for all Windows versions supporting .NET 8
Optimized for Windows Server and desktop environments
No additional dependencies required
Linux
Tested on Ubuntu 20.04+, CentOS 8+, Alpine 3.17+
No system dependencies beyond .NET 8 runtime
Works in containerized environments
macOS
Native ARM64 support for Apple Silicon (M1/M2)
Intel x64 support for older Macs
No additional frameworks required
Performance Benchmarks by Platform
Platform
Graph Creation
Memory Access
Thread Safety
Windows x64
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
Linux x64
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
macOS ARM64
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
⭐⭐⭐⭐⭐
Linux ARM64
⭐⭐⭐⭐
⭐⭐⭐⭐
⭐⭐⭐⭐⭐
Verification
The CI/CD pipeline tests the library on all major platforms:
Ubuntu (latest)
Windows (latest)
macOS (latest)
All tests must pass on all platforms before any release.
Dependencies
Runtime Dependencies
.NET 8.0 Runtime: Only dependency
No native libraries: Pure managed code with unsafe operations
No P/Invoke calls: Platform-independent implementation
Development Dependencies
Microsoft.NET.Test.Sdk: Testing framework
xunit: Unit testing
coverlet.collector: Code coverage
Migration from Other Platforms
From .NET Framework
Requires migration to .NET 8 (no direct .NET Framework support)