Rxdi
No description available
Install / Use
/learn @rxdi/RxdiREADME
rxdi — Monorepo (2025) 🚀
A collection of reactive, TypeScript-first packages for building modern Node and browser apps with dependency injection, GraphQL, Lit/Lit-HTML components and more.
This repository contains a set of interoperable libraries published under the @rxdi/* namespace. Packages are built and released from this monorepo and are designed to work together — you can pick just the packages you need.
What you’ll find here ✨
- A monorepo of packages (see
packages/) that include: core dependency-injection, frontend helpers, GraphQL tooling, integrations (Neo4j, Firebase, RabbitMQ), utilities and more. - Scripts and tooling to build, test and publish packages using Bolt (workspace runner) and the
gapihelpers that are included in the project.
Quick package overview 📦
Below is a concise summary of each package in this repo — open the package folder for full docs and examples.
| Package | Short description |
|---|---|
| @rxdi/core | Core reactive dependency-injection library for Node & Browser. (Bootstrap, modules, DI tokens, lifecycle hooks) 🔧 |
| @rxdi/lit-html | Lightweight Lit/Lit-HTML integration helpers, component decorators and modifier system for building web components ✨ |
| @rxdi/router | Client-side router with route guards, params and outlet/slot integration for web components 🚦 |
| @rxdi/graphql | Server GraphQL module for Hapi integrations and schema lifecycle helpers 🧩 |
| @rxdi/graphql-client | Apollo-based GraphQL client helpers and typed integration for components 💬 |
| @rxdi/graphql-pubsub | In-process pub/sub helpers for GraphQL subscriptions ⚡ |
| @rxdi/graphql-pubsub-test | Test helpers for GraphQL pubsub flows 🧪 |
| @rxdi/graphql-rabbitmq-subscriptions | RabbitMQ-backed pub/sub engine for distributed GraphQL subscriptions 🐇 |
| @rxdi/rabbitmq-pubsub | Low-level RabbitMQ pub/sub primitives used by RabbitMQ integrations 🛠️ |
| @rxdi/hapi | Hapi server integrations and helpers for running modules on Hapi 🎛️ |
| @rxdi/http | GraphQL-over-HTTP helpers and an HTTP client wrapper used by client modules 🌐 |
| @rxdi/altair | Altair GraphQL playground wrapper ready to serve via a route or static mount 🧭 |
| @rxdi/firestore | Reactive mixins and collection helpers for Google Firestore (server friendly) 🔥 |
| @rxdi/neo4j | Neo4j / neo4j-graphql-js helpers and automatic CRUD generation for typed GraphQL types 🌳 |
| @rxdi/forms | Reactive form binding for Lit/Lit-HTML components with validation and templates 📝 |
| @rxdi/hotkeys | Global and per-component hotkeys utilities for UI bindings ⌨️ |
| @rxdi/compressor | Small utilities for compressing/decompressing payloads (LZW) 🗜️ |
| @rxdi/credit-card-form | Reusable credit card component and model for forms 💳 |
| @rxdi/parcel-plugin-shebang | Parcel plugin to preserve shebangs when bundling CLI files ✂️ |
| @rxdi/schematics | Collection of Angular-style schematics for generating and scaffolding files ⚙️ |
Tip: Each package includes its own README with examples (look in
packages/<name>/README.md).
Getting started — local development 🔧
Requirements
- Node.js (LTS recommended; repo uses modern TypeScript)
- npm (or a Node package manager) — this repo uses Bolt workspaces
Clone and install
git clone https://github.com/rxdi/mono.git
cd mono
npm install
Common workspace scripts (run from repo root):
- Install & bootstrap (already
npm installhandles this):- npx bolt will be available via
npx bolt
- npx bolt will be available via
- Run package scripts across the workspace:
- Build all packages:
npx bolt ws exec -- npm run build - Run tests for all packages:
npx bolt ws exec -- npm test - Publish packages:
npx bolt ws exec -- npm publish --update-readme --access public - Publish nightly:
npx bolt ws exec -- npm publish ... --tag nightly
- Build all packages:
Run a single package locally
# from repo root
cd packages/<package-name>
# install package-local deps if needed
npm install
# run package's dev or build script (check package.json)
npm run dev || npm run start || npm run build
If you use gapi helper scripts (present in this repository):
gapi start --local --parcel— run a dev build for a client app with Parcelgapi build— build bundles using the project's conventions
Contributing 🤝
We welcome contributions! Please follow these steps:
- Fork the repo and create a feature branch:
git checkout -b feat/your-change - Add or update tests/examples in the package folder.
- Run tests:
npx bolt ws exec -- npm test - Commit with clear message and open a PR against
main.
Please follow the code style in existing packages (TypeScript modern style + Prettier). Add short, focused changelog entries in CHANGELOG.md for package-level releases.
Release & publishing notes 📤
- Releases are performed using workspace scripts in
package.json(seepublish-packagesandpublish-packages-nightly). - Version bumps for packages can be done using the top-level scripts:
npm run patch|minor|majorwhich run workspace commands.
License & Code of Conduct 📄
- Licensed under MIT. See
LICENSEin the repo root. - Please be respectful and open in contributions — follow common open source etiquette.
Need help / Contact 💬
- Issues: https://github.com/rxdi/mono/issues
- Author: Kristiyan Tachev (@Stradivario)
Happy hacking — jump into packages/ and try out a package! ✨
Related Skills
node-connect
347.2kDiagnose OpenClaw node connection and pairing failures for Android, iOS, and macOS companion apps
frontend-design
108.0kCreate distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.
openai-whisper-api
347.2kTranscribe audio via OpenAI Audio Transcriptions API (Whisper).
qqbot-media
347.2kQQBot 富媒体收发能力。使用 <qqmedia> 标签,系统根据文件扩展名自动识别类型(图片/语音/视频/文件)。
