Polars is a high-performance DataFrame library and query engine written in Rust with Python bindings. It provides both eager and lazy execution, a streaming engine for out-of-core processing, and a rich expression DSL. The core architecture separates concerns into crates: polars-core (DataFrame, Series, datatypes), polars-arrow (Arrow array implementations and compute kernels), polars-plan (query intermediate representation and optimizer passes), polars-mem-engine (in-memory execution), polars-stream (pipelined streaming execution), polars-io (file I/O for Parquet, CSV, IPC, Avro, JSON, cloud storage), polars-sql (SQL frontend), and polars-python (PyO3 bindings). Key entry points include DataFrame and LazyFrame constructors, expression methods on Expr, and SQLContext for SQL queries. Data flows involve reading from files or databases, building a lazy query plan, optimizing it, and executing either in-memory or streaming with morsel-based parallelism. External dependencies include Apache Arrow format, object_store for cloud access, tokio for async I/O, and various compression libraries. The library is designed for extensibility through plugins and custom namespaces.
Vaex is a high-performance Python library for lazy out-of-core DataFrames designed to handle datasets larger than memory. It achieves efficiency through memory mapping, zero-copy policies, lazy evaluation, and virtual columns that avoid materializing intermediate results. The system supports HDF5, Apache Arrow, Parquet, CSV, and FITS formats, with accelerated operations via C++ extensions for critical paths like hash-based aggregations and string processing. The architecture is modular, consisting of a core package (vaex-core) and specialized extensions: vaex-viz (visualization), vaex-hdf5 (HDF5 enhancements), vaex-astro (astronomy tools), vaex-ml (machine learning integrations), vaex-jupyter (notebook support), vaex-server (remote access via WebSocket/REST), and vaex-graphql (GraphQL API). Key entry points include the `vaex` CLI tool, `vaex.open()` for data loading, and programmatic APIs for DataFrame operations, expressions, and visualizations. Data flows prioritize out-of-core processing: data remains on disk until needed, computations are lazily executed and cached via fingerprinting, and results are streamed to minimize memory footprint. The codebase demonstrates strong engineering practices with a plugin system for extensibility (expression/dataframe accessors), centralized settings configuration, and a task-based execution engine supporting parallelism and async operations. While primarily a general-purpose data analysis library, it is widely used in data research due to its efficiency with large datasets and domain-specific integrations (e.g., astronomy via vaex-astro). Recent commits indicate active maintenance, low technical drift through adoption of modern dependencies (Apache Arrow, FastAPI), and a comprehensive test suite covering core functionality and extensions.