A modular, framework-agnostic library providing essential components for modern web applications. Stop reinventing the wheel - focus on building your application while the library handles the core functionalities.
-
Immutable Collections:
-
IterableCollection
- Simplifies work withIterable
-
ListCollection
- Simplifies work withArray
-
AsyncIterableCollection
- Simplifies work withAsyncIterable
-
-
Middleware System
- Agnostic middlewares applicable to any async/sync functions.
-
fallback
: Automatic recovery with default values on errors -
observe
: Monitor function execution and performance -
retry
: Smart retries with multiple backoff policies:constantBackoffPolicy
exponentialBackoffPolicy
linearBackoffPolicy
polynomialBackoffPolicy
-
sequentialHedging
: Runs fallbacks sequentially if the primary function fails, ensuring graceful failure handling. -
concurrentHedging
: Executes the primary function alongside fallbacks concurrently, returning the first successful result and aborting all remaining operations. -
timeout
: Guaranteed execution time limits
-
- Agnostic middlewares applicable to any async/sync functions.
-
LazyPromise:
- Executes only when awaited
- With middleware support
-
Pluggable Components:
-
Cache
with adapter support -
Lock
with adapter support -
EventBus
with adapter support -
Serde
(serializer, deserializer) adapters
-
- Query bus
- Command bus
- Semaphore component
- SharedLock (ReaderWriterLock)
- RateLimiter
- CircuitBreaker
- MessageQueue
- TaskScheduler
- Notification system
- Abstract file system
npm install @daiso-tech/core
Built with ideas from:
- Laravel, PHP
- Symfony components, PHP
- Verrou, TypeScript
- Distributed lock, C#
- Bento cache, TypeScript
- Fusion cache, C#
- Polly, C#