Skip to content

Architecture Overview

ImperaZim edited this page Jul 7, 2026 · 9 revisions

Architecture Overview

2.x Versus 3.x

Line Architecture
EasyLibrary 2.0.0 Full-bundle stable. Official libraries were shipped inside the core.
EasyLibrary 3.0.0-dev Core manager plus official packages or standalone plugins.

EasyLibrary 3.x removes the old official embedded library source from the core. The core no longer assumes every imperazim\* library namespace is always available.

Provider Types

Provider Location Owner
Package-backed proxy plugin_data/EasyLibrary/packages/<id>/<version>/ plus generated proxy EasyLibrary package manager
Package-backed virtual plugin_data/EasyLibrary/packages/<id>/<version>/ only Experimental EasyLibrary package manager mode
Standalone Normal PHAR or folder in plugins/ Standalone plugin
Legacy embedded Removed from EasyLibrary 3.x core Historical 2.x model

Package-Backed Identity

PMMP resolves plugins through plugin names, dependencies and getPlugin(). Package-backed providers therefore use generated proxy plugins with the real official plugin name.

The proxy gives PMMP identity. The package directory contains the real source.

Command Provider

EasyLibrary uses rich commands only when a package-backed or standalone LibCommand provider is available.

If LibCommand is missing or broken, EasyLibrary registers native fallback commands. /easylibrary keeps package/config/runtime recovery reachable. When LibModule is visible, /easymodule with aliases /emodule and /modules keeps module diagnostics reachable without loading the rich command tree.

Config Split

The 3.x config direction is:

plugin_data/EasyLibrary/config/
  package-manager.yml
  library-installer.yml
  components.yml
  notifications.yml
  doctor.yml
  logging.yml
  repositories.yml
  modules.yml

Legacy config.yml remains as fallback. Migration does not delete it.

Modules

LibModule is now the official home for module authoring, runtime provider, commands, manifests, services and capabilities. EasyLibrary no longer owns a core module manager. It only detects visible package-backed or standalone LibModule, wires command/report/doctor surfaces and exposes an explicit disabled provider when no module runtime exists.

The current boundary is documented in Module Boundary. [[Module Smoke Matrix]] remains the validation reference for package-backed and standalone LibModule server behavior.

Async Incubator

LibAsync is being tested as an incubator inside the EasyLibrary core, not as an official package yet. The LibAsync Incubator page documents the current worker/result/payload/callback shape and the criteria for deciding whether a new standalone repo should exist later.

Reflect Incubator

LibReflect is also being tested as an incubator inside the EasyLibrary core. The LibReflect Incubator page documents explicit class inspection, class-contract validation, attribute access and controlled instantiation. It is not a global scanner or dependency injection system.

Clone this wiki locally