Convert raster and vector geospatial data to various formats and coordinate systems entirely in the browser using WebAssembly.
gdal3.js is a JavaScript library that ports the powerful GDAL geospatial data processing toolkit to WebAssembly. It enables developers to convert between raster and vector geospatial formats and transform coordinate systems entirely in the browser or Node.js, without requiring server-side processing. This solves the problem of needing backend infrastructure for geospatial data manipulation in web applications.
Web developers building mapping applications, GIS professionals creating client-side tools, and anyone needing to process geospatial data in browser-based environments without server dependencies.
Developers choose gdal3.js because it brings the full power of GDAL's format support and coordinate transformation capabilities to the web platform, enabling complex geospatial workflows to run client-side with familiar GDAL semantics and without compromising data privacy.
Convert raster and vector geospatial data to various formats and coordinate systems entirely in the browser.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Supports over 100 raster and vector formats like GeoTIFF, GeoJSON, and MBTiles, as detailed in the README's comprehensive lists for read/write capabilities.
Processes geospatial data entirely in the browser or Node.js without server dependencies, ensuring sensitive data never leaves the client environment.
Works in modern browsers (with Web Workers) and Node.js, enabling flexible deployment across web and desktop applications like Electron.
Exposes standard GDAL utilities like gdal_translate and ogr2ogr as JavaScript functions with similar options, reducing the learning curve for existing GDAL users.
As a WebAssembly port, it runs slower than native GDAL bindings, especially for large datasets, a trade-off the README explicitly acknowledges for Node.js environments.
Requires managing WASM files, worker configurations, and asset copying in build tools like Webpack or Vite, adding development complexity compared to simpler libraries.
The compiled WebAssembly and data files are substantial (including PROJ, GEOS, etc.), increasing page load times and bandwidth usage in web applications.