-
Notifications
You must be signed in to change notification settings - Fork 2
Public API Contract
This page summarizes the EasyLibrary 3.0-dev public API classification.
The versioned source document is
docs/public-api.md.
| Marker | Meaning |
|---|---|
@api |
Supported public contract for plugin developers in the current major line. |
@experimental |
Usable during 3.0-dev, but still allowed to change before stable 3.0.0. |
@internal |
EasyLibrary implementation detail. Do not depend on it from another plugin. |
@deprecated |
Kept temporarily for migration with a documented replacement. |
Use ProviderResolver when plugin code needs to know which official provider
owns a library at runtime:
use imperazim\library\provider\ProviderResolver;
use imperazim\library\provider\ProviderStatus;
$resolver = ProviderResolver::fromServer($this->getServer());
$provider = $resolver?->one("libplaceholder");
if ($provider?->getProviderSource() === ProviderStatus::SOURCE_PACKAGE_BACKED
|| $provider?->getProviderSource() === ProviderStatus::SOURCE_STANDALONE) {
$plugin = $provider->getPlugin();
}Supported public classes:
| Class | Status |
|---|---|
imperazim\library\provider\ProviderResolver |
@api |
imperazim\library\provider\ProviderStatus |
@api |
imperazim\library\cache\RuntimeCache |
@api |
The explicit Library module and Agent accessors are also public entry points,
but lifecycle, package, command and boot internals are not public API.
RuntimeCache is process-local memory only. It supports TTL, remember(),
many helpers and stats, but it is not persistent storage or distributed state.
The old imperazim\components\cache\Cache component class was removed in the
3.0-dev line; callers should migrate directly to RuntimeCache.
The module runtime is available for testing in the 3.0-dev line, but remains
@experimental until the stable 3.0.0 freeze.
The current runtime stays in the EasyLibrary core. See Module Boundary for
the future LibModule plan and the OP-29 checklist. Component cleanup now goes
through an internal adapter, Module Smoke Matrix records the current
validation baseline, but the module authoring surface remains experimental.
Important experimental classes:
imperazim\module\ModuleInterfaceimperazim\module\BaseModuleimperazim\module\ModuleApiProviderimperazim\module\ModuleContextimperazim\module\ModuleManagerimperazim\module\service\ModuleServiceRegistryimperazim\module\health\ModuleHealthReportimperazim\module\summary\ModuleRuntimeSummaryimperazim\module\summary\ModuleSummaryEntry
imperazim\library\async\* is also experimental. It currently exists only as a
3.0-dev incubator for a possible future LibAsync package.
Important experimental classes:
imperazim\library\async\AsyncWorkerimperazim\library\async\AsyncResultimperazim\library\async\AsyncPayloadGuardimperazim\library\async\AsyncCallbackRegistryimperazim\library\async\AsyncJobTaskimperazim\library\async\AsyncDispatcher
See LibAsync Incubator.
imperazim\library\reflect\* is experimental. It currently exists only as a
3.0-dev incubator for a possible future LibReflect package.
Important experimental classes:
imperazim\library\reflect\ClassInspectorimperazim\library\reflect\ClassInspectionimperazim\library\reflect\ClassContractimperazim\library\reflect\ClassContractResultimperazim\library\reflect\ClassFactory
See LibReflect Incubator.
Do not depend on these namespaces from another plugin:
imperazim\library\package\*imperazim\library\config\*imperazim\library\command\*imperazim\components\plugin\*- module loader, registry, resolver and lifecycle internals.
Use documented commands, config files, package contracts and provider APIs instead.
See Compatibility Policy for BC, deprecation and channel rules.
- Package Manager
- Package Backed Plugins
- Standalone vs Package
- Package Switch and Migration
- Package Doctor
- Package Safety Gate
- Support Report Bundle
- Timings
- Package Recovery
- Proxy Troubleshooting
- Migrating from EasyLibrary 2.0 to 3.x
- Embedded Libraries Migration Map
- Removed Features and Replacements
- Deprecated APIs
- Compatibility Policy
- Config Migration
- 3x Dev Scope Checkpoint
- Plugin Developer Migration
- Server Administrator Migration
- Official Libraries
- LibPacket
- LibCommand
- LibSerializer
- LibForm
- LibDB
- LibCommons
- LibHttp
- LibAssets
- LibPlaceholder
- LibWorld
- EasyLibrary Agent Bridge
- LibCustom
- LibEnchantment
- LibHud
- LibTrigger
- LibWindow
- Public API Contract
- Module Boundary
- Module Smoke Matrix
- LibAsync Incubator
- LibReflect Incubator
- Doctor Output
- Repository Notifications
- Smoke Tests
- Common Errors
- Release and Changelog