arquero
Arquero is a JavaScript library for querying and transforming data tables using a fluent, relational-algebra-inspired API. It handles millions of rows efficiently and works with arrays, typed arrays, and Apache Arrow columns.
Key facts
Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.
| Field | Value |
|---|---|
| Repository | uwdata/arquero |
| Owner | uwdata |
| Primary language | JavaScript |
| License | BSD-3-Clause — OSI-approved |
| Stars | 1.5k |
| Forks | 73 |
| Open issues | 41 |
| Latest release | v8.0.3 (2025-05-29) |
| Last updated | 2025-05-29 |
| Source | https://github.com/uwdata/arquero |
What arquero is
Column-oriented data frame library following dplyr design patterns, supporting filter, aggregation, window, join, and reshape operations via method-chainable verbs. Processes array-backed and Arrow-backed tables with optional extensibility for custom functions.
Get the arquero source
Clone the repository and explore it locally.
git clone https://github.com/uwdata/arquero.gitcd arquero# follow the project's README for install & configurationNeed it deployed, integrated, or customized instead? DEV.co ships production installs.
Best use cases
Implementation considerations
- Verify Node.js ≥18 compatibility in your deployment environment; older Node versions or IE browsers require transpilation.
- Arquero reuses columns where possible to minimize memory overhead, but large tables with many columns still consume proportional memory—profile memory usage early.
- Custom aggregate and window functions require understanding Arquero's expression DSL and optional functional forms; test thoroughly.
- Apache Arrow interop is opt-in; if using toArrow() or loadArrow(), ensure Apache Arrow is imported before Arquero in the browser.
- No built-in SQL parsing; table expressions use JavaScript arrow functions, so SQL familiarity does not directly transfer.
When to avoid it — and what to weigh
- Petabyte-scale or distributed processing — Arquero is single-threaded and in-memory; it is not designed for big data platforms like Spark or Flink. Data must fit within Node.js/browser memory.
- SQL-like stored procedures or complex query optimization — Arquero is a runtime data-frame library, not a query optimizer or database. If you need query planning, indexing, or persistence, use a dedicated database.
- Real-time streaming or event-driven transforms — Arquero operates on static tables. For continuous streams (Kafka, message queues), use stream-processing frameworks instead.
- Strict server-side isolation or sandboxed environments — Arquero supports arbitrary JavaScript expressions and custom functions; if you need strict input validation or isolation from untrusted data, add your own security layer.
License & commercial use
Licensed under BSD-3-Clause (permissive OSI license). Allows commercial use, modification, and redistribution with attribution and liability disclaimer.
BSD-3-Clause is a permissive OSI license that permits commercial use in proprietary applications. You must retain the original license notice and copyright attribution. No patent indemnity or warranty is provided; review BSD-3-Clause terms and consult legal counsel for high-risk deployments.
DEV.co evaluation signals
Editorial assessment — not user reviews. Directional, with an explicit confidence level.
| Signal | Assessment |
|---|---|
| Maintenance | Active |
| Documentation | Strong |
| License clarity | Clear |
| Deployment complexity | Low |
| DEV.co fit | Strong |
| Assessment confidence | High |
Arquero evaluates JavaScript expressions (arrow functions) in table operations. If data or queries come from untrusted sources, expressions could be exploited. No built-in input sanitization; validate and escape user-supplied column names and expressions. No known CVEs listed in data; however, treat any expression-based system as requiring explicit security review in sandboxed contexts.
Alternatives to consider
Danfo.js
Python pandas-inspired library for JavaScript; similar data-frame API but different verb naming (map, filter) and less relational-algebra focus. Heavier bundle.
Apache Arrow JS + Parquet.js
Lower-level columnar data format and tools; requires manual query construction but offers better cross-language interop and binary file support.
DuckDB (WebAssembly)
Full SQL query engine in WebAssembly; superior for complex queries, indexing, and optimization, but larger bundle and higher memory overhead.
Build on arquero with DEV.co software developers
Arquero is production-ready for browser dashboards and Node.js ETL. Review the documentation, try the Observable tutorials, and evaluate memory/performance for your data scale.
Talk to DEV.coRelated on DEV.co
Explore the category and the services that help you build with it.
arquero FAQ
Can Arquero handle millions of rows?
Does Arquero replace a database?
Can I use Arquero with Apache Arrow?
Is Arquero suitable for production dashboards?
Software developers & web developers for hire
DEV.co helps companies turn open-source tools like arquero into production software. Our software development services cover the full lifecycle — architecture, web development, integration, and maintenance — delivered by software developers and web developers who ship. Engage our software development agency to implement or customize it for your open-source databases stack.
Ready to add data transformation to your JavaScript stack?
Arquero is production-ready for browser dashboards and Node.js ETL. Review the documentation, try the Observable tutorials, and evaluate memory/performance for your data scale.