Skip to content

Latest commit

 

History

History
75 lines (57 loc) · 3.39 KB

File metadata and controls

75 lines (57 loc) · 3.39 KB

CLAUDE.md

This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.

Project Overview

NebulaStore is a .NET 9.0 class library that ports Eclipse Store functionality to .NET Core. It provides ultra-fast object graph persistence without object-relational mapping overhead.

Eclipse Store Modules Ported

This project ports the following core modules from the Eclipse Store Java repository:

  • storage/embedded - Core embedded storage engine with object graph persistence
  • storage/embedded-configuration - Configuration system for storage settings
  • storage/storage - Core storage types, interfaces, and connection management

The .NET implementation maintains the same module structure and design patterns as the original Eclipse Store Java code.

Development Commands

Note: .NET SDK is installed at ~/.dotnet - ensure this is in your PATH by running export PATH="$PATH:$HOME/.dotnet" before using dotnet commands.

  • dotnet build - Build the entire solution
  • dotnet test - Run all unit tests
  • dotnet restore - Restore NuGet packages

Project Structure

NebulaStore.sln              # Solution file
src/
  NebulaStore.Core/          # Core class library
    NebulaStore.Core.csproj  # Project file
    ObjectStore.cs           # Core object persistence engine
tests/
  NebulaStore.Core.Tests/    # Unit tests
    NebulaStore.Core.Tests.csproj
    ObjectStoreTests.cs      # Basic ObjectStore functionality tests
    ObjectStoreLazyQueryTests.cs # Lazy query traversal tests

Architecture

NebulaStore follows the Eclipse Store module structure:

  • storage/ - Main storage module (mirrors Eclipse Store)
    • embedded/ - Embedded storage submodule
      • src/ - Core embedded storage implementation
      • tests/ - Comprehensive test suite
      • NebulaStore.Storage.Embedded.csproj - Project file
    • embedded-configuration/ - Configuration module (mirrors Eclipse Store)
      • src/ - Configuration classes and interfaces
      • NebulaStore.Storage.EmbeddedConfiguration.csproj - Project file
    • storage/ - Core storage types module (mirrors Eclipse Store)
      • src/types/ - Storage interfaces and implementations
      • NebulaStore.Storage.csproj - Project file
  • Dependencies: MessagePack for binary serialization

Key Components

  • EmbeddedStorage: Static factory class for creating storage managers
  • IEmbeddedStorageManager: Main interface for storage operations
  • EmbeddedStorageFoundation: Builder pattern for configuration
  • IEmbeddedStorageConfiguration: Configuration system
  • Type Handlers: Pluggable serialization system
  • Storage Connections: Connection management and lifecycle

Key Components

Embedded Storage API (Primary)

  • EmbeddedStorage: Static factory class (storage/embedded/src/EmbeddedStorage.cs)
  • IEmbeddedStorageManager: Main storage interface (storage/embedded/src/IEmbeddedStorageManager.cs)
  • EmbeddedStorageFoundation: Configuration builder (storage/embedded/src/EmbeddedStorageFoundation.cs)
  • IEmbeddedStorageConfiguration: Configuration interface (storage/embedded/src/IEmbeddedStorageConfiguration.cs)
  • ITypeHandler: Type serialization interface (storage/embedded/src/IEmbeddedStorageFoundation.cs)
  • MessagePackTypeHandler: Built-in type handlers (storage/embedded/src/TypeHandlers/MessagePackTypeHandler.cs)