Releases: furkantokkan/Onity
Release list
Onity 0.3.7 - scene flow readiness and Unity 6.5 compatibility
Highlights
- Added a four-stage
Loading -> Menu -> Hub -> Gamescene-flow profile, Bootstrap readiness, default UI Toolkit loading initiators, and a blank-template action. - Updated Unity 2022.3-compatible package baselines: Input System 1.19.0, Entities 1.4.8, Burst 1.8.29, Collections 2.6.8, and Mathematics 1.3.3.
- Updated first-party GitHub Actions to Node 24-backed major versions.
- Fixed Bootstrap scene transitions so synchronous and asynchronous
ProjectContextbuild callbacks complete before the transition fires once. - Fixed editor-tool compilation on Unity 6000.5 while preserving Unity 2022.3 support.
- Added stable metadata for retained benchmark results and a CI guard that rejects incomplete immutable UPM packages.
Verification
- Unity 2022.3.62f3 EditMode: 439/439 passed
- Unity 2022.3.62f3 PlayMode: 12/12 passed
- Analyzer tests: 24/24 passed
- Engine-free core, analyzer, and source-generator builds: 0 warnings / 0 errors
- Clean Unity 2022.3.62f3 import: no compiler, missing-meta, or immutable-folder errors
- Main and
upmpackage metadata scans: 228/228 source files covered
Install
Pin the release in Packages/manifest.json:
"com.onity.framework": "https://github.com/furkantokkan/Onity.git?path=/Packages/com.onity.framework#v0.3.7"Full changelog: v0.3.6...v0.3.7
Onity 0.3.6 - task safety, raycast jobs, and DI performance
Highlights
- Accelerates standard generic DI resolve with dense type-id provider slots while preserving lifetime, diagnostics, rebind, parent fallback, and self-resolve behavior.
- Hardens pooled
OnityTaskgeneration, single-consumer, cancellation, main-thread continuation, andAsTask()reuse safety. - Makes
OnityRaycastCommandBatchown pending jobs, synchronize buffer access, and schedule only active command ranges. - Adds focused IL2CPP benchmark scenario filtering and safer player benchmark scene/build-state restoration.
Performance
Windows IL2CPP singleton release gate, Unity 2022.3.62f3, 1000 samples and 10,000 resolves per sample:
| Container | ns/op |
|---|---|
| Onity standard | 18.80 |
| Onity baked | 17.40 |
| VContainer | 94.39 |
| Zenject | 435.24 |
Onity standard was approximately 80.1% faster than VContainer in the same run. The full Editor/Mono and Windows IL2CPP benchmark tables were also refreshed.
Allocation cells are reported as n/a: the Unity 2022.3 counters did not pass
calibration for known allocating paths, so this release makes no zero-allocation
claim from that benchmark harness.
Verification
- Unity EditMode: 434/434 passed.
- Unity PlayMode: 10/10 passed.
- All 14 current Unity-generated project builds passed.
- Engine-free core, analyzer, and source-generator Release builds passed.
- Windows IL2CPP full benchmark and focused 1000-sample gate passed.
Install
Latest UPM branch:
https://github.com/furkantokkan/Onity.git#upm
Pinned release:
https://github.com/furkantokkan/Onity.git?path=Packages/com.onity.framework#v0.3.6
Onity 0.3.5 - OnityTask async layer
Highlights
- Added
OnityTaskandOnityTask<T>as the Onity-owned Unity async awaitable surface for gameplay flows. - Added frame waits, delay helpers, scene loading,
AsyncOperation,UnityWebRequest, reactive await, and async messaging bridges. - Added optional OnityTask vs UniTask benchmark tooling behind
ONITY_BENCHMARKS. - Added the UniTask migration guide and updated release pin examples to
v0.3.5.
Verification
dotnet build Onity.Unity.csproj -nologodotnet build Onity.Tests.EditMode.csproj -nologodotnet build onity-core-ci.csproj -c Release -nologo- GitHub Actions: Onity CI, GitHub Pages deploy, and UPM branch publish completed successfully.
Install
https://github.com/furkantokkan/Onity.git#upm
Pinned release:
https://github.com/furkantokkan/Onity.git?path=Packages/com.onity.framework#v0.3.5
Onity 0.3.4 - OnityEvent shortcuts and IL2CPP benchmarks
Changed
- Renamed Unity event shortcuts from
Onity.Publish/Subscribe/ObservetoOnityEvent.Publish/Subscribe/Observefor clearer call sites. - Gated benchmark comparison assemblies behind
ONITY_BENCHMARKSso package-only users do not need VContainer or Zenject unless they run benchmarks. - Refreshed the README and comparison docs with the latest Editor/Mono and Windows IL2CPP Player DI benchmark tables.
- Simplified benchmark/dependency wording and removed stale ZLinq references from public docs and changelogs.
Benchmarks
- Editor/Mono: Onity baked is faster than VContainer and Zenject on all five measured DI timing scenarios.
- Windows IL2CPP Player: Onity baked with generated AOT activators is faster than VContainer and Zenject on all five measured DI timing scenarios.
- Latest player run:
2026-05-31T15:26:19Z, Unity2022.3.62f3, Windows IL2CPP, 512 warmup / 8 samples / 10,000 iterations, 19 generated activators registered.
Verification
dotnet build onity-core-ci.csproj -c Release -nologo- Windows IL2CPP player DI benchmark:
Packages/com.onity.framework/Benchmarks/Results/di-benchmark-player-latest.json - UPM branch updated for
com.onity.frameworkversion0.3.4.
Onity 0.3.3 - editor cleanup and sample-free package
Onity 0.3.3
Changed
- Removed bundled package samples and the
samplesmanifest entry so the UPM package stays focused on runtime, editor tooling, tests, and benchmarks. - Consolidated editor menu entries under
Onity/...and removed duplicateTools/Onity/Window/Onityaliases. - Polished diagnostics, pool, observable, and task tracker toolbars so search clear buttons only appear when useful and toolbar labels do not overlap.
- Updated README, package README, Getting Started, changelogs, and plan docs for the sample-free package and
0.3.3install pins.
Added
- Added Scene Flow ready profile presets for
Loading -> GameandLoading -> Menu -> Game. - Added automatic creation of missing ready-profile scenes under
Assets/Scenes/OnitySceneFlow.
Verified
dotnet build onity-core-ci.csproj -c Release -nologogit diff --check
Onity 0.3.2 - IL2CPP generated activators
Changed
- Added the generated AOT constructor activator registry and source generator package asset.
- IL2CPP resolve now prefers direct generated new T(...) activators before Expression.Compile/reflection fallback.
- Updated Windows IL2CPP player benchmark results and docs; Onity baked is faster than VContainer and Zenject on all five measured player scenarios in the committed run.
- Updated UPM package metadata and install pins to 0.3.2.
Verification
- dotnet build tools/Onity.SourceGen/Onity.SourceGen.csproj -c Release
- dotnet build onity-core-ci.csproj -c Release
- Windows IL2CPP player DI benchmark: 19 generated activators registered
Onity 0.3.1 - zero third-party runtime dependencies
Onity 0.3.1 removes its last third-party runtime dependency (ZLinq).
- Zero third-party runtime dependencies. Install no longer needs NuGetForUnity — clone, or add via the Package Manager git URL, and it just compiles.
OnityUiPresenterFactorynow uses a hand-rolled loop instead ofAsValueEnumerable; the core still uses noSystem.Linq(only loops).- All docs/claims updated to "no third-party runtime dependencies".
Onity 0.3.0
Added
- Added engine-free reactive thread-pool scheduling with
ObserveOnThreadPool()andSelectOnThreadPool(...). - Added focused EditMode coverage for ordered thread-pool delivery, configured parallelism, source-order preservation at concurrency 1, and invalid concurrency validation.
- Added ADR 0002 for the managed thread-pool boundary.
Changed
- Bumped
com.onity.frameworkto0.3.0. - Updated R3 migration, reactive operator reference, architecture notes, and UPM install pin examples to
v0.3.0.
Verification
dotnet build onity-core-ci.csproj -c Release
Onity 0.2.1
Onity 0.2.1
- Optimizes the baked DI build graph by reusing provider records.
- Refreshes VContainer/Zenject comparison docs and benchmark reports.
- Adds message broker and MessagePipe migration examples.
- Updates package version, changelog, main branch, tag, and UPM branch.
Benchmark headline:
- Prepare & Register (Complex): Onity Baked 47,243.12 ns/op vs VContainer 135,140.18 ns/op.
- Onity Baked is faster than VContainer in every measured Editor/Mono timing scenario in the 2026-05-30 benchmark run.
Verified:
- dotnet build Onity.DI.csproj
- dotnet build Onity.Tests.EditMode.csproj
- Unity EditMode baked parity suite: 15/15 passed
- Unity batchmode DI benchmark generated latest benchmark artifacts
Note: IL2CPP correctness is covered through AOT fallback tests, but these timing numbers are Editor/Mono benchmark numbers.
Onity 0.2.0
Onity 0.2.0 — one Unity package for dependency injection, reactive programming, and events.
Highlights
- DI: compiled activators with an automatic reflection fallback (IL2CPP-validated), automatic entry-point lifecycle (
IOnityInitializable/IOnityTickable/IOnityFixedTickable/IOnityLateTickable), collection injection (IEnumerable<T>/IReadOnlyList<T>/List<T>/T[]…), open-generic registration, child-scope lifetimes, and a Roslyn analyzer (ONITY001–ONITY006). - Reactive: one
IOnityObservablewith a full operator set,Subject/ReactiveProperty, oneIDisposable+AddTodisposal model. - Events: auto-bound
IMessageBroker/OnityEventHub, keyed and async channels. - DOTS: a Burst-compiled
Onity.DOTSbridge drains the event broker into Entities. - Docs: GitHub Pages site, an AI-indexed usage guide, reference catalogs, and migration guides.
Notes (honest)
- Engine-free core; hot paths are designed to avoid per-call managed allocation, but a transient resolve still allocates its returned instance, and the benchmark allocation figures are being re-measured. Timing numbers are indicative (Editor-Mono, one machine).
- The only third-party runtime dependency is ZLinq (auto-restored via NuGetForUnity).
- CI builds the engine-free core with no Unity license; the Unity EditMode/PlayMode tests run once a
UNITY_LICENSEsecret is configured.
Install
Unity → Window → Package Manager → + → Add package from git URL:
https://github.com/furkantokkan/Onity.git?path=Packages/com.onity.framework#v0.2.0