V3 · OVERVIEW

What's new in v3

v3 is the project's second life: same mission (GDAL where JavaScript runs), rebuilt on cpp.js so it reaches phones, exposes far more of GDAL, and stops fighting bundlers.

Headlines

A bigger API

v2 exposed five programs. v3 exposes 13 program-level tools: translate, vectorTranslate (ogr2ogr), warp, rasterize, buildVRT, multiDimTranslate, demProcessing (gdaldem), grid, nearblack, footprint, plus info / vectorInfo / multiDimInfo, and the class-level API underneath: Dataset (transactions, layers, overviews, GCPs…), Driver (capability introspection, create/createCopy), GCP, SubdatasetInfo, and ~80 utility statics on Gdal. Browse the API reference.

New codecs

JPEG-, ZSTD- and LERC-compressed GeoTIFFs & COGs open and write out of the box (-co COMPRESS=JPEG|ZSTD|LERC|LERC_ZSTD), community PRs #105/#107/#108 answering issues #103 and #99.

Filesystem, grown up

The v2 mystery of /output became a real API: OPFS-backed persistence (fs: { opfs: true }), /vsimem/ and /vsizip/, and management calls (readDir, unlink, rename, copyFile, mkdirTree, getFileList). The VFS guide has the tour.

v3 vs v2, in one table

V2 (2.8.X)V3 (BETA)
RuntimesBrowser, NodeBrowser, Node, iOS, Android (+ experimental edge build)
SetupManual asset paths / copy pluginsBundler plugins, zero asset config
API5 programs + helpers13 programs + full class surface
GDAL3.8.x line3.13.1
Files/output + getFileBytesOPFS / host FS + management API
LicenseMIT License, LGPL-2.1 default build (unchanged)

Performance: no published v2-vs-v3 benchmarks yet. Numbers will land here when there's a methodology worth trusting. The mobile case needs none: native beats wasm-in-a-tab structurally.

Beta status & known gaps