A universal queue system that works with links instead of traditional messages, events, or tasks. Each queue item is represented as a link—the fundamental unit of information. Supports both JavaScript/TypeScript and Rust implementations.
See our comprehensive comparison with existing message brokers (RabbitMQ, Celery, BullMQ, Kafka) to understand where Links Queue fits in the messaging ecosystem.
For detailed planning documents, see:
- VISION.md - Project vision and goals
- REQUIREMENTS.md - Detailed requirements specification
- ARCHITECTURE.md - System architecture design
- ROADMAP.md - Development phases and milestones
.
├── js/ # JavaScript/TypeScript implementation
│ ├── .changeset/ # Changeset configuration
│ ├── .husky/ # Git hooks
│ ├── examples/ # Usage examples
│ ├── scripts/ # Build and release scripts
│ ├── src/ # Source code
│ ├── tests/ # Test files
│ ├── package.json # Node.js package manifest
│ └── README.md # JS-specific documentation
│
├── rust/ # Rust implementation
│ ├── changelog.d/ # Changelog fragments
│ ├── examples/ # Usage examples
│ ├── scripts/ # Build and release scripts
│ ├── src/ # Source code
│ ├── tests/ # Integration tests
│ ├── Cargo.toml # Rust package manifest
│ └── README.md # Rust-specific documentation
│
├── .github/workflows/ # CI/CD workflows
│ ├── js.yml # JavaScript CI/CD pipeline
│ └── rust.yml # Rust CI/CD pipeline
│
└── LICENSE # Unlicense (Public Domain)
- JavaScript/TypeScript: See js/README.md
- Rust: See rust/README.md
- Multi-runtime support (Node.js, Bun, Deno)
- Universal testing with test-anywhere
- Automated releases via Changesets
- ESLint + Prettier with pre-commit hooks
- Cross-platform support (Linux, macOS, Windows)
- Async support with Tokio
- Pedantic Clippy lints
- Changelog fragments for automated releases
cd js
npm install
npm test
npm run lintcd rust
cargo build
cargo test
cargo clippyEach language has its own CI/CD workflow:
- js.yml: Handles JavaScript testing, linting, and npm publishing
- rust.yml: Handles Rust testing, linting, and GitHub releases
Changes to files in js/ trigger the JS workflow, and changes to files in rust/ trigger the Rust workflow.
- Create a changeset:
cd js && npm run changeset - Commit and push to a branch
- Open a PR and merge to main
- The workflow will automatically version and publish to npm
- Add a changelog fragment in
rust/changelog.d/ - Commit and push to a branch
- Open a PR and merge to main
- The workflow will automatically bump version and create a GitHub release
Unlicense - Public Domain