@loaders.gl/core

The core API for loaders.gl, a framework-independent toolkit for loading and parsing big-data, 3D, and geospatial formats.

Library
npm
v4.4.4
849stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
85/100Excellent
Development Activity96
Maintenance72
Community84
Maturity60
Momentum28

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
82/100Excellent
Architecture85
Code Quality82
Innovation80
Learning Curve72

@loaders.gl/core is the core API of loaders.gl, a framework in the vis.gl suite that provides a collection of framework-independent loaders and writers focused on geospatial, 3D, and big-data visualization. The core package defines the universal load, parse, and encode functions that every loaders.gl format module plugs into.

Rather than parse a specific format itself, the core exposes a consistent interface — parse, parseInBatches, load, encode, and loader registration — so you can read anything from glTF, LAS point clouds, and 3D Tiles to CSV, Parquet, Arrow, and shapefiles through the same API. It supports streaming and batched parsing, Web Worker offloading, and pluggable fetch and filesystem backends.

What You Get

  • Universal parse, parseSync, parseInBatches, load, and loadInBatches functions that work with any loaders.gl loader
  • Table and binary encode functions plus writer support for round-tripping data
  • Loader registration and automatic loader selection by content type or extension
  • Streaming and batched iteration, Web Worker offloading, and pluggable fetch and filesystem backends

Common Use Cases

  • Loading 3D assets and point clouds (glTF, LAS, 3D Tiles, PLY, OBJ) for WebGL/WebGPU rendering
  • Parsing large geospatial datasets (GeoJSON, shapefile, Parquet, Arrow, FlatGeobuf) in the browser or Node
  • Streaming and batch-parsing big tabular data without blocking the main thread

Under The Hood

Architecture

The core package (modules/core) is deliberately format-agnostic: its src/lib/api directory holds the pipeline verbs — parse, parse-in-batches, load, encode, select-loader, register-loaders, create-data-source — while individual formats live in sibling monorepo modules (gltf, las, 3d-tiles, csv, parquet, arrow, shapefile, and dozens more). Fetching is abstracted through lib/fetch, iteration through iterators (makeIterator, makeStream), and worker orchestration through worker-utils, so any loader can be driven synchronously, asynchronously, in batches, or on a worker thread through the same calls.

Tech Stack

Written in TypeScript and organized as a large Yarn-workspaces monorepo of ~50 modules. The core depends on the internal @loaders.gl/loader-utils, @loaders.gl/schema, @loaders.gl/schema-utils, and @loaders.gl/worker-utils packages plus @probe.gl/log, and targets both browser and Node environments.

Code Quality

As a mature vis.gl project with 2,800+ commits and 100+ contributors, loaders.gl maintains extensive documentation, per-module test suites, and CI. The core cleanly separates the API surface from transport, iteration, and worker concerns, and the monorepo layout keeps each format’s parsing logic isolated and independently testable.

API Design

The public API is small and composable: pick a loader, call parse(data, Loader) or load(url, Loader), and receive a normalized result. The same verbs scale up to parseInBatches for streaming and accept options for workers and fetch behavior, so developers learn one interface and reuse it across every format. Excellent website documentation and consistent naming keep the learning curve reasonable despite the breadth of supported formats.

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers

Search