https://github.com/dagnygus/ng-queuex
https://github.com/dagnygus/ng-queuex
Last synced: 1 day ago
JSON representation
- Host: GitHub
- URL: https://github.com/dagnygus/ng-queuex
- Owner: dagnygus
- Created: 2025-09-19T19:31:23.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2026-01-23T22:51:42.000Z (about 1 month ago)
- Last Synced: 2026-01-24T10:23:02.958Z (about 1 month ago)
- Language: TypeScript
- Size: 1.94 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-angular - ng-queuex - Experimental Angular ecosystem with React-like scheduler and signal-driven directives for fine-grained change detection. (Development Utilities / Performance)
- fucking-awesome-angular - ng-queuex - Experimental Angular ecosystem with React-like scheduler and signal-driven directives for fine-grained change detection. (Development Utilities / Performance)
README

# 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](./projects/ng-queuex/core/README.md)
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#onStable` until the scheduler is idle.
β‘οΈ [Read more](./projects/ng-queuex/core/README.md)
---
### [@ng-queuex/template](./projects/ng-queuex/template/README.md)
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 to `NgIf`.
- `*qxFor` β concurrent alternative to `NgForOf`.
- `*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](./projects/ng-queuex/template/README.md)
---
## π Getting Started
Install the main packages:
```bash
npm install https://github.com/dagnygus/ng-queuex/releases/download/v0.0.4/ng-queuex-core-0.0.5.tgz
```
```bash
npm install https://github.com/dagnygus/ng-queuex/releases/download/v0.0.4/ng-queuex-template-0.0.5.tgz
```
## π Example
```ts
import { scheduleTest, Priority } from "@ng-queuex/core"
const abort = scheduleTask(() => {
console.log('running with highest priority.')
}, Priority.Highest)
// Later, if needed
abort();
```
```html
```
## π Public API
[@ng-queuex/core](./projects/ng-queuex/core/README.md)
[@ng-queuex/template](./projects/ng-queuex/template/README.md)
## πΊ Roadmap
- β
Core scheduler (done)
- β
Template directives (done)
- π Package dedicated for angular signals
- π Virtual scrolling and virtualization