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
- React Native. GDAL as a real native library on iOS and Android over JSI (New Architecture supported): the same JavaScript you write for the web, without browser memory ceilings.
- The cpp.js switch. GDAL's C++ classes are bound automatically; bundler plugins (Vite, Webpack, Rollup, Rspack, Metro) own the asset story that filled the v2 issue tracker.
- GDAL 3.13.1 with its driver registry, CI-asserted on every build.
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) | |
|---|---|---|
| Runtimes | Browser, Node | Browser, Node, iOS, Android (+ experimental edge build) |
| Setup | Manual asset paths / copy plugins | Bundler plugins, zero asset config |
| API | 5 programs + helpers | 13 programs + full class surface |
| GDAL | 3.8.x line | 3.13.1 |
| Files | /output + getFileBytes | OPFS / host FS + management API |
| License | MIT 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.