Skip to content

Packages

All packages are published under the @studnicky scope to the GitHub Package Registry.

@studnicky:registry=https://npm.pkg.github.com

Public path contract

Each package root exports its portable API. A package publishes ./interfaces for public substitution contracts, ./entities for canonical structured data, and platform entrypoints such as ./browser only when the runtime implementation differs. Construct stateful primitives through Class.create(config) and invoke their direct operation methods. Composition packages do not proxy dependency functionality; import dependency-owned contracts from that dependency's public entrypoint.

See the Composition Contract and Package Registry for the workspace-wide rules and current platform-parity status.

Concurrency

PackageDescription
@studnicky/retryGeneric async retry with extensible error classification and backoff strategies
@studnicky/throttleSliding-window concurrency throttle with adaptive limits and abort support
@studnicky/mutexKey-based async mutual exclusion with queue and timeout support
@studnicky/batchBatch concurrent execution: process items in controlled parallel groups
@studnicky/concurrencyKeyed async channels, semaphore, and coalesce primitives
@studnicky/file-lockProcess-level advisory file locking
@studnicky/virtual-fsIn-memory synchronous filesystem primitive with browser compatibility
@studnicky/signalInstance-based AbortSignal composition and timeout utilities
@studnicky/idempotency-guardIdempotency key guard composing cache, concurrency, and json: replay, coalesce, and conflict detection
@studnicky/memoizePure function memoization composing cache and concurrency: LRU+TTL result caching with in-flight call dedup
@studnicky/bounded-dispatcherBounded work dispatch pattern composing concurrency's Semaphore, event-bus, and scheduler
@studnicky/keyed-work-gateKeyed single-flight and serialized work gate composing mutex and concurrency's Coalesce
@studnicky/keyed-rate-limiterPer-key rate limiting composing cache and resilience, generic over an injectable rate-limiting strategy

Time

PackageDescription
@studnicky/clockWall-clock and monotonic time with injectable providers for deterministic testing
@studnicky/schedulerReal-time and virtual (min-heap) scheduler primitives
@studnicky/timingHigh-resolution operation timing tracker using process.hrtime.bigint()

State & Flow

PackageDescription
@studnicky/contextPer-request async context isolation using AsyncLocalStorage
@studnicky/fsmAbstract finite state machine base class with effect interpreter
@studnicky/pipelineGeneric typed async pipeline for sequential context transforms
@studnicky/paginatorCursor/page-list state tracker for paginated data sources
@studnicky/process-kitReducer-with-effects process pattern composing fsm and scheduler
@studnicky/storeObservable state container with interchangeable in-memory and browser-native persistence
@studnicky/strata-store-kitOrdered store composition that keeps cache and durable browser state synchronized
@studnicky/visible-rangePure index/offset arithmetic for computing the visible item range of a virtualized list
@studnicky/flag-evaluatorLocal deterministic feature-flag evaluation with percentage rollout and observability hooks

Data

PackageDescription
@studnicky/cacheLRU cache with optional TTL and capacity bounds
@studnicky/entity-storeNormalized, ID-indexed entity collection with CRUD operations and O(1) lookup
@studnicky/jsonJSON/object value-tools: deep merge, clone, equal, freeze, patch, hash, path, sort
@studnicky/typesShared zero-runtime utility types, type guards, and predicate helpers
@studnicky/drilldownDeterministic multi-level grouping, faceting, and sorting over arbitrary record data
@studnicky/filtersComposable declarative filtering primitives
@studnicky/configConfiguration validation and clamping utilities

Matching & Routing

PackageDescription
@studnicky/matchingDeterministic normalization, encoding, extraction, matching, scoring, and candidate-source primitives
@studnicky/matching-filtersOptional one-operation filter adapters for deterministic matching scores
@studnicky/semantic-matchingProvider-neutral contracts for vectorization, vector search, reranking, classification, and bounded adjudication
@studnicky/topic-routerPattern-based multi-subscriber event fan-out
@studnicky/topic-router-modelsModel-evidence mapping contracts for builder-selected topic delivery

I/O & Observability

PackageDescription
@studnicky/event-busPublish/subscribe event bus with backpressure-aware queues
@studnicky/fetchProfessional HTTP client with timeout, override hooks, and configured clients
@studnicky/loggerPluggable logging interface with Pino wrapper, child loggers, and structured metadata
@studnicky/errorsStandardized error hierarchy serializing to RFC 9457 Problem Details
@studnicky/request-executorComposes fetch, retry, signal, timing, and context into a one-shot request execution pattern
@studnicky/resilienceCircuit breaker, token bucket, and dead-letter queue primitives
@studnicky/sliding-window-limiterSliding-window rate limiter — exact timestamp-log or approximate blended-counter algorithm
@studnicky/boundary-kitComposes throttle, circuit breaker, and retry into a fixed-order boundary call pattern
@studnicky/health-registryNamed async health-check registry with worst-status-wins aggregation
@studnicky/systemCPU/GPU/memory/platform detection for worker sizing
@studnicky/worker-poolBounded node:worker_threads pool that fans work items across workers with a typed message envelope and per-task timeout

Buffers

PackageDescription
@studnicky/circular-bufferGeneric circular buffer with O(1) push and shift
@studnicky/sample-bufferFixed-capacity numeric sample buffer with percentile calculation

Foundation

PackageDescription
@studnicky/eslint-configShared ESLint flat config for @studnicky packages
@studnicky/intake-kitGeneric boundary-crossing primitives shared by every schema-backed entity engine