Skip to content

Releases: furkantokkan/Onity

Onity 0.3.7 - scene flow readiness and Unity 6.5 compatibility

Choose a tag to compare

@furkantokkan furkantokkan released this 29 Jul 22:02
ae6b57a

Highlights

  • Added a four-stage Loading -> Menu -> Hub -> Game scene-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 ProjectContext build 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 upm package 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

Choose a tag to compare

@furkantokkan furkantokkan released this 12 Jul 14:04
6f2dece

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 OnityTask generation, single-consumer, cancellation, main-thread continuation, and AsTask() reuse safety.
  • Makes OnityRaycastCommandBatch own 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

Choose a tag to compare

@furkantokkan furkantokkan released this 20 Jun 22:47

Highlights

  • Added OnityTask and OnityTask<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 -nologo
  • dotnet build Onity.Tests.EditMode.csproj -nologo
  • dotnet 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

Choose a tag to compare

@furkantokkan furkantokkan released this 31 May 13:50

Changed

  • Renamed Unity event shortcuts from Onity.Publish / Subscribe / Observe to OnityEvent.Publish / Subscribe / Observe for clearer call sites.
  • Gated benchmark comparison assemblies behind ONITY_BENCHMARKS so 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, Unity 2022.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.framework version 0.3.4.

Onity 0.3.3 - editor cleanup and sample-free package

Choose a tag to compare

@furkantokkan furkantokkan released this 31 May 00:42

Onity 0.3.3

Changed

  • Removed bundled package samples and the samples manifest entry so the UPM package stays focused on runtime, editor tooling, tests, and benchmarks.
  • Consolidated editor menu entries under Onity/... and removed duplicate Tools/Onity / Window/Onity aliases.
  • 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.3 install pins.

Added

  • Added Scene Flow ready profile presets for Loading -> Game and Loading -> Menu -> Game.
  • Added automatic creation of missing ready-profile scenes under Assets/Scenes/OnitySceneFlow.

Verified

  • dotnet build onity-core-ci.csproj -c Release -nologo
  • git diff --check

Onity 0.3.2 - IL2CPP generated activators

Choose a tag to compare

@furkantokkan furkantokkan released this 30 May 23:22

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

Choose a tag to compare

@furkantokkan furkantokkan released this 30 May 22:50

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.
  • OnityUiPresenterFactory now uses a hand-rolled loop instead of AsValueEnumerable; the core still uses no System.Linq (only loops).
  • All docs/claims updated to "no third-party runtime dependencies".

Onity 0.3.0

Choose a tag to compare

@furkantokkan furkantokkan released this 30 May 20:09

Added

  • Added engine-free reactive thread-pool scheduling with ObserveOnThreadPool() and SelectOnThreadPool(...).
  • 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.framework to 0.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

Choose a tag to compare

@furkantokkan furkantokkan released this 30 May 18:53

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

Choose a tag to compare

@furkantokkan furkantokkan released this 30 May 15:36

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 (ONITY001ONITY006).
  • Reactive: one IOnityObservable with a full operator set, Subject/ReactiveProperty, one IDisposable + AddTo disposal model.
  • Events: auto-bound IMessageBroker/OnityEventHub, keyed and async channels.
  • DOTS: a Burst-compiled Onity.DOTS bridge 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_LICENSE secret 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