ng-queuex
November 24, 2025 Β· View on GitHub

ng-queuex
Queuex is an experimental ecosystem for Angular that introduces a React-inspired concurrent scheduler
and a set of signal-driven structural directives for fine-grained, isolated change detection.
Unlike traditional Angular patterns (services, RxJS-heavy abstractions), Queuex provides a minimal API:
just a scheduler exposed in simple functional API and directives built directly on top of Angularβs Signal API.
β¨ Why Queuex?
Angular's default change detection is global, synchronous, and tied to the logical tree.
Queuex takes a different approach:
- πΉ Minimal & functional API β no services, no RxJS boilerplate, just functions and signals.
- πΉ Concurrent scheduler β inspired by React, with priority levels and abortable tasks.
- πΉ Fine-grained change detection β run detection only where itβs needed.
- πΉ Hydration-aware β application stabilization (
ApplicationRef#onStable) waits until the scheduler is idle. - πΉ Server-side transparent β on the server, all directives gracefully fall back to Angularβs native behavior.
π¦ Packages
@ng-queuex/core
Core utilities and the concurrent scheduler.
β οΈ Note: Scheduling functions are client-side only.
On the server they intentionally throw, ensuring that developers provide explicit server side fallbacks (as demonstrated in @ng-queuex/template).
Other utilities in this package remain safe to use in both environments.
scheduleTask()β enqueue clean, abortable tasks.detectChanges()/scheduleChangeDetection()β enqueue dirty tasks with built-in coalescing.- Designed to be minimal and functional: no Angular DI services, no RxJS.
- Hydration-aware: delays
ApplicationRef#onStableuntil the scheduler is idle.
β‘οΈ Read more
@ng-queuex/template
Signal-driven structural directives powered by the core scheduler.
β οΈ Note: All directives are built upon signal APIs, so its usage is restricted to immutable objects.
*qxIfβ granular alternative toNgIf.*qxForβ concurrent alternative toNgForOf.*watchβ elegant property binding to DOM.*qxSwitch,*qxSwitchCase,*qxSwitchDefault.*lazyView,*scheduledView,*reactiveViewβ lazy rendering with different levels of isolation and scheduling.- All directives are SSR-friendly with transparent fallbacks, and compatible with Hydration.
β‘οΈ Read more
π Getting Started
Install the main packages:
npm install https://github.com/dagnygus/ng-queuex/releases/download/v0.0.4/ng-queuex-core-0.0.5.tgz
npm install https://github.com/dagnygus/ng-queuex/releases/download/v0.0.4/ng-queuex-template-0.0.5.tgz
π Example
import { scheduleTest, Priority } from "@ng-queuex/core"
const abort = scheduleTask(() => {
console.log('running with highest priority.')
}, Priority.Highest)
// Later, if needed
abort();
<span *watch [textContent]="personName()"></span>
π Public API
@ng-queuex/core
@ng-queuex/template
πΊ Roadmap
- β Core scheduler (done)
- β Template directives (done)
- π Package dedicated for angular signals
- π Virtual scrolling and virtualization