DOCS · UPGRADING · WHAT'S NEW

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 GDAL operations; v3 exposes 13: 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, mkdirRecursive, unlink, rename, copyFile), plus getFileList for multi-file outputs. The VFS guide has the tour.

v3 vs v2, in one table

V2 (2.8.X)V3
RuntimesBrowser, NodeBrowser, Node, iOS, Android, edge
SetupManual asset paths / copy pluginsBundler plugins, zero asset config
API5 operations + helpers13 operations + full class surface
GDAL3.8.x line3.13.1
Files/output + getFileBytesOPFS / host FS + management API
LicenseLGPL-2.1MIT

Performance: the benchmarks measure native GDAL against gdal3.js in the browser and Node, per operation. A v2-vs-v3 comparison isn't on the table: both run GDAL in wasm, so the comparison that matters is wasm versus native, not one wasm version against another. The mobile case needs none: native beats wasm-in-a-tab structurally.

Known gaps