
Sublinear-Time Solver
github.com/ruvnet/sublinear-time-solver- Category
- Developer Tools
- Rank
- No. 1451Tools index
Previous survey · No. 1423 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- ruvnet
- GitHub
- 90 stars
- Latest release
- v1.7.2
- Date
About
Rust + WASM solver for asymmetric diagonally dominant systems — Neumann series, push, and hybrid random-walk algorithms with npm CLI and HTTP API.
What it does
It targets large sparse matrix problems where you need only a few answers or updates. It limits work to nearby graph structure, supports full iterative fallbacks, and exposes declared cost classes so callers can reject operations that exceed a computation budget.
Why it's ranked here
The strongest idea is cost-aware computation, backed by concrete APIs for sparse changes, selected entries, and cumulative budgets. The supplied benchmark shows sparse-closure time staying nearly flat from 256 to 1024 rows, although it remains slower than full solving at those sizes. That makes the scaling case promising but workload-dependent.
What's good
Complexity is part of the type and MCP contracts, not just documentation. Callers can cap both per-operation cost class and the number of operations in a plan. The library also supports coherence checks, incremental updates, bounded graph closures, sparse witnesses, and explicit linear fallbacks when localized work is unsuitable.
Tradeoffs
Sublinear behavior depends on sparse, diagonally dominant matrices, bounded graph depth, and localized changes. The adaptive entry solver can degrade to linear work. Reported sparse-closure measurements do not beat full solves at the demonstrated sizes. The package also mixes numerical solving with broad consciousness and psycho-symbolic claims, which makes its scope and engineering signal harder to assess.
How to use it well
Use it for experiments involving sparse diagonally dominant systems, especially repeated local updates or selected-entry queries. Benchmark your own matrix structure against the full linear methods before committing. It is not a general dense linear algebra replacement, and the supplied repository text does not establish independent scientific validation for its consciousness claims.
Technical notes+
Cargo.toml defines the Rust library as both rlib and cdylib, with default std and serde features plus opt-in wasm, cli, SIMD, parallel, dashboard, and consciousness features. package.json publishes ESM JavaScript, TypeScript declarations, four CLI aliases, and separate core, MCP, and tools exports. src/complexity.rs assigns SublinearNeumannSolver an Adaptive class with logarithmic default and linear worst case. src/closure.rs implements bounded breadth-first expansion with a BitSet. src/budget.rs tracks a maximum ComplexityClass and remaining operation count. One implementation detail deserves scrutiny: src/coherence.rs describes coherence_score as O(nnz), but its shown code loops across every column of every row and calls matrix.get. src/bmssp.rs switches small or relatively dense inputs to conjugate gradient and also falls back after visiting more than half the graph.
Observed
- License
- MIT OR Apache-2.0
- Languages
- Rust and TypeScript
- Packaging
- Cargo crate plus npm package with ESM output and TypeScript declarations
- Interfaces
- Rust library, JavaScript library, CLI, MCP server, and HTTP serving surface
- Runtime support
- Node.js 16 or newer; optional WebAssembly support for browser and Node.js deployment
- Testing and benchmarks
- Rust modules include unit tests; Cargo config includes Criterion benchmarks and proptest; npm runs Node tests after building
Read from README.md, Cargo.toml, package.json, src/lib.rs, src/index.ts, src/bmssp.rs, src/budget.rs, src/closure.rs, src/coherence.rs, src/complexity.rs, src/consciousness_demo.rs.
What it can do
Solve asymmetric diagonally dominant linear systems using Neumann series algorithm
Asymmetric diagonally dominant matrix and vector → Solution vector
Solve asymmetric diagonally dominant linear systems using push algorithm
Asymmetric diagonally dominant matrix and vector → Solution vector
Solve asymmetric diagonally dominant linear systems using hybrid random-walk algorithm
Asymmetric diagonally dominant matrix and vector → Solution vector
Execute solver operations via command line interface
Command line arguments and matrix data → Computed solution results
Process solver requests through HTTP API
HTTP requests with matrix system data → HTTP responses with solution results
Run high-performance computations in web browsers
Matrix system data via WebAssembly interface → Computed solutions in browser environment
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.