diff --git a/.vitepress/data/leaderboard.ts b/.vitepress/data/leaderboard.ts new file mode 100644 index 0000000..e4fd982 --- /dev/null +++ b/.vitepress/data/leaderboard.ts @@ -0,0 +1,85 @@ +// .vitepress/data/leaderboard.ts +// +// Community-submitted Zarr stores, sorted by size. +// To add an entry, append to the array below and open a PR. +// The store must be publicly readable (anonymous S3/GCS/HTTPS access). + +import type { LeaderboardEntry } from './types' + +export const leaderboard: LeaderboardEntry[] = [ + { + nickname: 'ERA5 Reanalysis', + store_link: 's3://example-bucket/era5-reanalysis.zarr', + size_bytes: 2_400_000_000_000_000, + total_chunks: 1_200_000_000, + tech: 'native-zarr-v3', + submitted_by: 'alice', + last_verified: '2026-05-01', + docs_url: 'https://example.com/era5-blog', + }, + { + nickname: 'CMIP6 Mirror', + store_link: 'gs://example/cmip6-mirror.zarr', + size_bytes: 850_000_000_000_000, + total_chunks: 410_000_000, + tech: 'icechunk', + submitted_by: 'bob', + last_verified: '2026-04-22', + }, + { + nickname: 'Sentinel-2 Mosaic', + store_link: 's3://example/sentinel2-mosaic', + size_bytes: 312_000_000_000_000, + total_chunks: 88_000_000, + tech: 'virtual-icechunk', + submitted_by: 'carol', + last_verified: '2026-05-10', + }, + { + nickname: 'GOES-16', + store_link: 'https://example.org/goes16.zarr', + size_bytes: 95_000_000_000_000, + total_chunks: 22_000_000, + tech: 'native-zarr-v3', + submitted_by: 'dave', + last_verified: '2026-03-15', + }, + { + nickname: 'NOAA HRRR', + store_link: 's3://example/noaa-hrrr.zarr', + size_bytes: 41_000_000_000_000, + total_chunks: 9_500_000, + tech: 'native-zarr-v2', + submitted_by: 'erin', + last_verified: '2026-05-20', + docs_url: 'https://example.com/hrrr-notebook', + }, + { + nickname: 'GEFS Reforecast', + store_link: 's3://example/gefs-reforecast.zarr', + size_bytes: 28_000_000_000_000, + total_chunks: 7_200_000, + tech: 'native-zarr-v3', + submitted_by: 'frank', + last_verified: '2026-04-10', + }, + { + nickname: 'OpenNeuro Brain Imaging', + store_link: 's3://example/openneuro-brain.zarr', + size_bytes: 15_000_000_000_000, + total_chunks: 3_100_000, + tech: 'native-zarr-v2', + submitted_by: 'grace', + last_verified: '2026-05-05', + docs_url: 'https://example.com/openneuro-docs', + }, + { + nickname: 'Copernicus DEM Global', + store_link: 'gs://example/copernicus-dem-global.zarr', + size_bytes: 8_500_000_000_000, + total_chunks: 1_800_000, + tech: 'virtualizarr', + submitted_by: 'hana', + last_verified: '2026-03-28', + }, +] diff --git a/.vitepress/data/types.ts b/.vitepress/data/types.ts index 37a1d48..8f79221 100644 --- a/.vitepress/data/types.ts +++ b/.vitepress/data/types.ts @@ -54,3 +54,21 @@ export interface BackingEntry { href: string kind: 'fiscal-host' | 'standards-body' | 'sponsor' } + +export type LeaderboardTech = + | 'native-zarr-v2' + | 'native-zarr-v3' + | 'icechunk' + | 'virtual-icechunk' + | 'virtualizarr' + +export interface LeaderboardEntry { + nickname: string // short display name, e.g. "ERA5 Reanalysis" + store_link: string // e.g. "s3://bucket/path.zarr" + size_bytes: number // total on-disk size in bytes + total_chunks: number // total chunk count across all arrays + tech: LeaderboardTech + submitted_by: string // GitHub handle (no @) + last_verified: string // ISO date string, e.g. "2026-05-01" + docs_url?: string // optional link to blog / repo / notebook +} diff --git a/.vitepress/theme/LeaderboardTabs.vue b/.vitepress/theme/LeaderboardTabs.vue new file mode 100644 index 0000000..9333c57 --- /dev/null +++ b/.vitepress/theme/LeaderboardTabs.vue @@ -0,0 +1,524 @@ + + + + + diff --git a/.vitepress/theme/index.ts b/.vitepress/theme/index.ts index 0d9e42b..7649082 100644 --- a/.vitepress/theme/index.ts +++ b/.vitepress/theme/index.ts @@ -5,6 +5,7 @@ import './custom.css' import AdoptersMarquee from './AdoptersMarquee.vue' import ImplementationsGrid from './ImplementationsGrid.vue' +import LeaderboardTabs from './LeaderboardTabs.vue' import LogoWall from './LogoWall.vue' import BackingBand from './BackingBand.vue' import PageHero from './PageHero.vue' @@ -21,6 +22,7 @@ export default { enhanceApp({ app }: EnhanceAppContext) { app.component('AdoptersMarquee', AdoptersMarquee) app.component('ImplementationsGrid', ImplementationsGrid) + app.component('LeaderboardTabs', LeaderboardTabs) app.component('LogoWall', LogoWall) app.component('BackingBand', BackingBand) app.component('PageHero', PageHero) diff --git a/datasets/index.md b/datasets/index.md index 5bee003..2de2004 100644 --- a/datasets/index.md +++ b/datasets/index.md @@ -3,8 +3,11 @@ title: Zarr Datasets ---