A high-performance DataFrame library for V, powered by DuckDB.
VFrames provides a Pandas-like interface for data manipulation in V, leveraging DuckDB's powerful SQL engine for fast in-memory analytics. Designed for developers who want the expressiveness of Pandas with the performance of a compiled language.
- Pandas-like API - Familiar syntax for data scientists coming from Python
- DuckDB Backend - Leverages DuckDB's vectorized execution for exceptional performance
- Multiple Data Sources - Read CSV, JSON, and Parquet files with automatic type inference
- Immutable Design - All operations return new DataFrames, preventing accidental mutations
- Rich Functionality - Support for filtering, grouping, pivoting, joining, and more
# Install dependencies
v install https://github.com/rodabt/vduckdb
v install https://github.com/rodabt/vframesimport vframes
fn main() {
// Initialize context (in-memory or persisted)
mut ctx := vframes.init()
// Load data from file
df := ctx.read_auto('data.csv')!
// Explore data
df.head(5)
df.shape()
df.describe()
ctx.close()
}- V (Vlang) compiler
- DuckDB library (
LIBDUCKDB_DIRenvironment variable must be set)
- Tutorial - Step-by-step guide with Pandas comparisons
- API Reference - Complete function list
- Examples - Real-world usage examples
| Feature | VFrames | Pandas |
|---|---|---|
| Language | V (compiled) | Python (interpreted) |
| Performance | ~10-100x faster | Baseline |
| Memory | Efficient (DuckDB) | RAM-intensive |
| Type Safety | Compile-time | Runtime |
Contributions are welcome! Please read our contributing guidelines before submitting PRs.
MIT License - see LICENSE for details.