Morpheo.Core 1.0.5

dotnet add package Morpheo.Core --version 1.0.5
                    
NuGet\Install-Package Morpheo.Core -Version 1.0.5
                    
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="Morpheo.Core" Version="1.0.5" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="Morpheo.Core" Version="1.0.5" />
                    
Directory.Packages.props
<PackageReference Include="Morpheo.Core" />
                    
Project file
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 Morpheo.Core --version 1.0.5
                    
#r "nuget: Morpheo.Core, 1.0.5"
                    
#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 Morpheo.Core@1.0.5
                    
#: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=Morpheo.Core&version=1.0.5
                    
Install as a Cake Addin
#tool nuget:?package=Morpheo.Core&version=1.0.5
                    
Install as a Cake Tool

Morpheo Core Engine

Morpheo.Core est le cœur du framework. Il contient l'ensemble de la logique de synchronisation, les algorithmes distribués, et les implémentations par défaut pour le stockage et le réseau.

🏗 Architecture Interne

Le moteur est orchestré par le DataSyncService, qui agit comme le chef d'orchestre des données. Son rôle est de :

  1. Intercepter les modifications locales.
  2. Les logger de manière immuable avec un vecteur de temps.
  3. Les diffuser intelligemment sur le réseau (Push).
  4. Recevoir et appliquer les modifications distantes (Pull/Merge).

Algorithmes Clés

Morpheo utilise des structures de données avancées pour garantir la cohérence :

  • Vector Clocks (Causalité) : Chaque modification porte une horloge logique (ex: [A:1, B:2]) permettant de détecter si deux événements sont séquentiels ou concurrents, sans dépendre de l'horloge système (NTP).
  • Merkle Trees (Anti-entropie) : Un arbre de hachage permet de comparer rapidement des gigaoctets de données entre deux nœuds pour trouver les différences exactes sans tout transférer.
  • Delta Compression : Seuls les octets modifiés (diff) sont transmis sur le réseau, réduisant drastiquement la consommation de bande passante.

💾 Storage Providers

Morpheo est agnostique au stockage, mais fournit des implémentations robustes clé-en-main :

Provider Description Usage
SQlite Stockage relationnel embarqué performant. Supporte WAL mode pour la concurrence. Default
In-Memory Stockage volatile pour les tests ou les nœuds éphémères. Testing
FileSystem Stockage de gros fichiers (BLOBs) directement sur le disque. Assets

🌐 Network Capabilities

Le framework supporte nativement plusieurs protocoles de transport pour s'adapter à la topologie :

  • HTTP/REST : Pour les échanges standards et la compatibilité firewall.
  • SignalR (WebSockets) : Pour la notification temps réel ("Push") et les mises à jour instantanées.
  • UDP Multicast : Pour la découverte automatique des pairs (Zero-Conf) sur le réseau local.

⚙️ Configuration Avancée (Builder)

L'initialisation se fait via une API fluide (Fluent API) dans le conteneur d'injection de dépendances .NET classique :

services.AddMorpheo(options => 
{
    options.NodeName = "Server-01";
    options.Role = NodeRole.Server;
})
.UseSqlite("Data Source=morpheo_core.db") // Choix du stockage
.AddExternalDbSync<MyAppDbContext>()      // Synchronisation d'une DB existante
.EnableDashboard();                       // Activation de l'UI d'admin


Morpheo Core Engine (English)

Morpheo.Core is the core of the framework. It acts as the execution engine containing all synchronization logic, distributed algorithms, and default implementations for storage and networking.

🏗 Internal Architecture

The engine is orchestrated by the DataSyncService, which acts as the data conductor. Its role is to:

  1. Intercept local changes.
  2. Log them immutably with a time vector.
  3. Intelligently broadcast them over the network (Push).
  4. Receive and apply remote changes (Pull/Merge).

Key Algorithms

Morpheo uses advanced data structures to ensure consistency:

  • Vector Clocks (Causality): Each modification carries a logical clock (e.g., [A:1, B:2]) used to detect if two events are sequential or concurrent, without relying on the system clock (NTP).
  • Merkle Trees (Anti-entropy): A hash tree allows rapid comparison of gigabytes of data between two nodes to find exact differences without transferring everything.
  • Delta Compression: Only modified bytes (diff) are transmitted over the network, drastically reducing bandwidth consumption.

💾 Storage Providers

Morpheo is storage-agnostic but provides robust turnkey implementations:

Provider Description Usage
SQlite High-performance embedded relational storage. Supports WAL mode for concurrency. Default
In-Memory Volatile storage for tests or ephemeral nodes. Testing
FileSystem Storage for large files (BLOBs) directly on disk. Assets

🌐 Network Capabilities

The framework natively supports multiple transport protocols to adapt to the topology:

  • HTTP/REST: For standard exchanges and firewall compatibility.
  • SignalR (WebSockets): For real-time notification ("Push") and instant updates.
  • UDP Multicast: For automatic peer discovery (Zero-Conf) on the local network.

⚙️ Advanced Configuration (Builder)

Initialization is done via a Fluent API within the classic .NET dependency injection container:

services.AddMorpheo(options => 
{
    options.NodeName = "Server-01";
    options.Role = NodeRole.Server;
})
.UseSqlite("Data Source=morpheo_core.db") // Storage choice
.AddExternalDbSync<MyAppDbContext>()      // Existing DB synchronization
.EnableDashboard();                       // Enable Admin UI
Product 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.

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.5 134 6/8/2026
1.0.4 107 6/8/2026
1.0.3 116 6/8/2026
1.0.2 132 1/5/2026
1.0.1 142 1/5/2026
1.0.0 128 1/5/2026