Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 22 additions & 22 deletions bun.lock
Original file line number Diff line number Diff line change
Expand Up @@ -5,30 +5,30 @@
"": {
"name": "vortex",
"dependencies": {
"@mdx-js/react": "latest",
"@next/mdx": "latest",
"@tailwindcss/typography": "latest",
"@vercel/analytics": "latest",
"next": "latest",
"next-plausible": "latest",
"ogl": "latest",
"prettier": "latest",
"react": "latest",
"react-dom": "latest",
"react-markdown": "latest",
"use-scramble": "latest",
"velite": "latest",
"@mdx-js/react": "^3.1.1",
"@next/mdx": "^16.0.7",
"@tailwindcss/typography": "^0.5.19",
"@vercel/analytics": "^1.6.1",
"next": "16.0.7",
"next-plausible": "^3.12.5",
"ogl": "^1.0.11",
"prettier": "^3.7.4",
"react": "^19.2.1",
"react-dom": "^19.2.1",
"react-markdown": "^10.1.0",
"use-scramble": "^2.2.15",
"velite": "^0.3.1",
},
"devDependencies": {
"@eslint/eslintrc": "latest",
"@tailwindcss/postcss": "latest",
"@types/node": "latest",
"@types/react": "latest",
"@types/react-dom": "latest",
"eslint": "latest",
"eslint-config-next": "latest",
"tailwindcss": "latest",
"typescript": "latest",
"@eslint/eslintrc": "^3.3.3",
"@tailwindcss/postcss": "^4.1.17",
"@types/node": "^24.10.1",
"@types/react": "^19.2.7",
"@types/react-dom": "^19.2.3",
"eslint": "^9.39.1",
"eslint-config-next": "16.0.7",
"tailwindcss": "^4.1.17",
"typescript": "^5.9.3",
},
},
},
Expand Down
13 changes: 10 additions & 3 deletions src/components/hero/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,15 @@ import {
import { useEffect, useRef } from "react";
import { Overlay } from "../overlay";

const DESKTOP_HEIGHT = 312;
const MOBILE_HEIGHT = 214;
// Calculated heights: header + footer including all margins
// Header: 108px (h-[108px]) + 40px (m-10 top) + 24px (mb-6) = 172px
// Footer: 16px (mt-4) + 40px (m-10 bottom) + 84px (md:h-[84px]) + 36px (pt-4 + content) = 176px
// Total: 172px + 176px = 348px
const DESKTOP_HEIGHT = 348;
// Header: 72px (h-[72px]) + 16px (m-4 top) + 8px (mb-2) = 96px
// Footer: 8px (mt-2) + 16px (m-4 bottom) + 52px (py-4 + content) + 36px (pt-4 + content) = 112px
// Total: 96px + 112px = 208px
const MOBILE_HEIGHT = 200;

const DESKTOP_CAMERA_POSITION = new Vec3(5, -5, 10);
const MOBILE_CAMERA_POSITION = new Vec3(7, -7, 12);
Expand Down Expand Up @@ -288,7 +295,7 @@ void main() {
}, []);

return (
<div className="w-full overflow-clip h-[calc(100dvh-214px)] md:h-[calc(100dvh-312px)]">
<div className="w-full overflow-clip h-[calc(100dvh-208px)] md:h-[calc(100dvh-354px)]">
<div
ref={containerRef}
className="w-[calc(100%-2rem)] md:w-[calc(100%-5rem)] mx-4 md:mx-10 h-full overflow-clip"
Expand Down
52 changes: 23 additions & 29 deletions src/components/layout/footer.tsx
Original file line number Diff line number Diff line change
@@ -1,50 +1,44 @@
import SpiralLogo from "@/assets/spiral.svg";
import LFLogo from "@/assets/lf_white.svg";
import SpiralLogo from "@/assets/spiral.svg";
import Image from "next/image";
import NextLink from "next/link";
import { Link } from "../link";

export const Footer = () => {
return (
<div className="flex flex-col m-4 mt-2 md:mt-4 md:m-10">
<div className="flex flex-col mx-4 mt-2 md:mt-4 md:mx-10">
<div className="flex justify-center items-center gap-16 dashed-top dashed-bottom after:hidden md:after:block md:h-[84px]">
<div className="flex items-center h-full lg:px-10">
<div className="flex flex-col md:flex-row items-center gap-2 py-4 md:py-0">
<span className="text-white font-mono text-sm flex gap-3 items-center">
<NextLink
href="https://spiraldb.com"
target="_blank"
className="uppercase text-white font-mono text-sm"
>
<Image
src={SpiralLogo}
alt="Spiral Logo"
width={15}
height={18}
/>
</NextLink>
<span>
Donated by{" "}
<Link href="https://spiraldb.com" target="_blank">
Spiral
</Link>
.
</span>
<span className="text-white font-mono text-sm flex items-center gap-1">
Copyright © Vortex a Series of{" "}
<Link href="https://lfprojects.org" target="_blank">
LF Projects, LLC.
</Link>
</span>
</div>
</div>
<div className="flex items-center h-full lg:px-10 py-4 pb-4 md:py-0">
<span className="text-sm font-mono text-white flex items-center gap-2">
Incubating @ <Image src={LFLogo} alt="Linux Foundation logo" height={10} className="inline" />
Incubating @{" "}
<Image
src={LFLogo}
alt="Linux Foundation logo"
height={10}
className="inline"
/>
</span>
</div>
</div>
<div className="text-center mt-4">
<span className="text-xs font-mono text-gray-500">
Copyright © Vortex a Series of{" "}
<Link href="https://lfprojects.org" target="_blank">
LF Projects, LLC
<div className="text-center py-8">
<span className="text-xs font-mono text-gray-500 flex items-center justify-center gap-2">
<NextLink href="https://spiraldb.com" target="_blank">
<Image src={SpiralLogo} alt="Spiral Logo" width={15} height={18} />
</NextLink>
Donated by{" "}
<Link href="https://spiraldb.com" target="_blank">
Spiral.
</Link>
.
</span>
</div>
</div>
Expand Down
59 changes: 59 additions & 0 deletions src/content/blog/october-2025.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
title: "October Bulletin"
date: "2025-11-6"
authors: ["Community Team"]
excerpt: "Overview of all work happening in Vortex"
published: true
---

In October, a lot of focus was on revamping Array evaluation to be fully lazy, by converting their execution
to an Operator model that evaluates into Vectors (fully decompressed, zero-copy to Arrow representation).
This work enables many more optimizations, and also provides unified abstractions for evaluating on
different processor types (CPUs & GPUs).

In parallel, Vortex added experimental support for a GPU Scan, with fused CUDA kernels for decompressing Vortex data
directly on-device.

For an in-depth view of this work, see the [recent talk on Vortex](https://db.cs.cmu.edu/events/futuredata-vortex/)
as part of CMU's Future Data Seminar.

## Core

1. Children of `ZonedLayoutReader` are evaluated lazily. [#5007](https://github.com/vortex-data/vortex/pull/5007)
2. Introduced our own bit-buffer type, allowing for in-place mutation [#4940](https://github.com/vortex-data/vortex/pull/4940)
3. Introduced experimental GPU Scan [#5012](https://github.com/vortex-data/vortex/pull/5012)

## Integrations

### DFT

You can now try Vortex as part of [dft](https://github.com/datafusion-contrib/datafusion-dft), a batteries-included suite of data tools based on Apache DataFusion.

### DataFusion

1. Added support for pushing down filters onto fields of struct columns. #5024

### DuckDB

As of DuckDB 1.4.2, Vortex is included as a core extension in DuckDB. See their [docs](https://duckdb.org/docs/stable/core_extensions/vortex) for more details.

## Acknowledgments

We want to thank to anyone who has tried Vortex, provided feedback, asked question and filed issues.

Special thanks go for all the contributors who took the time and care to contribute to Vortex this month (in descending count of commits):

```text
41 Connor Tsui
38 Joe Isaacs
24 Nicholas Gates
22 Robert Kruszewski
22 Adam Gutglick
10 Andrew Duffy
8 Dan King
8 Alexander Droste
7 Onur Satici
5 Alfonso Subiotto Marqués
2 Dmitrii Blaginin
1 Maksim Dergousov
```
28 changes: 22 additions & 6 deletions tsconfig.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,11 @@
{
"compilerOptions": {
"target": "ES2017",
"lib": ["dom", "dom.iterable", "esnext"],
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"strict": true,
Expand All @@ -11,18 +15,30 @@
"moduleResolution": "bundler",
"resolveJsonModule": true,
"isolatedModules": true,
"jsx": "preserve",
"jsx": "react-jsx",
"incremental": true,
"plugins": [
{
"name": "next"
}
],
"paths": {
"@/*": ["./src/*"],
"#site/content": ["./.velite"]
"@/*": [
"./src/*"
],
"#site/content": [
"./.velite"
]
}
},
"include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
"exclude": ["node_modules"]
"include": [
"next-env.d.ts",
"**/*.ts",
"**/*.tsx",
".next/types/**/*.ts",
".next/dev/types/**/*.ts"
],
"exclude": [
"node_modules"
]
}