GeoLibre is a free and open source GIS platform built for visualizing, exploring, analyzing, and sharing geospatial data. What makes it especially interesting is its flexible approach to deployment. The same workspace can run in a web browser, as a desktop application, on mobile devices, and inside Jupyter notebooks. It also emphasizes local processing and privacy, making it an appealing alternative to heavier traditional GIS applications.
GeoLibre is aimed at users who work with maps and spatial data but do not necessarily want to install a large desktop GIS application. The browser version runs entirely client-side, with loaded data processed locally in the browser session. There is no required account or server backend for normal use.
Under the hood, GeoLibre combines MapLibre GL JS, DuckDB-WASM Spatial, deck.gl, React, TypeScript, and Tauri. This combination gives it a modern foundation for handling both traditional geospatial files and newer cloud-native formats.
Key Features of GeoLibre
Browser-Based GIS
GeoLibre can run directly in a modern browser without installation. Users can load supported vector and raster data, create maps, style layers, and perform spatial analysis without setting up a dedicated GIS workstation.
Desktop and Mobile Support
For workflows requiring filesystem access and native functionality, GeoLibre is also available as a desktop application for Windows, macOS, and Linux. The same project format can move between different versions of the application.
Cloud-Native Geospatial Data
One of GeoLibre's strongest areas is its support for modern cloud-native formats and services. It can work with GeoParquet, FlatGeobuf, PMTiles, COG, Zarr, vector tiles, GeoJSON, WMS, and other remote datasets.
This approach can be particularly useful when working with large datasets where downloading everything locally is unnecessary.
Spatial SQL
GeoLibre includes a SQL Workspace powered by DuckDB Spatial, allowing users to query and analyze spatial data using SQL. It also supports additional spatial engines, including PGlite with PostGIS and Apache Sedona.
Geoprocessing Tools
The application goes beyond simple map visualization. Its processing capabilities include vector analysis, raster processing, spectral indices, georeferencing, spatial statistics, network analysis, and conversion between geospatial formats.
3D and LiDAR
GeoLibre supports 3D Tiles, terrain visualization, and LiDAR datasets, making it useful for users working with 3D geographic information rather than only conventional 2D maps.
Plugin System
The platform includes a plugin API and plugin marketplace, allowing functionality to be extended without modifying the core application. This provides room for specialized workflows and third-party integrations.
Privacy-Focused Architecture
GeoLibre Web processes data locally in the browser and does not require an account or analytics for normal usage. Data only leaves the browser when users deliberately connect to remote resources or share a project.
Download GeoLibre v2.3.0 - Software Mirrors |
|---|
GeoLibre v2.3.0 for WindowsGeoLibre.Desktop_2.3.0_x64_en-US.msi | 35.77 MB GeoLibre.Desktop_2.3.0_x64-setup.exe | 34.89 MB geolibre-desktop_windows_x64.exe | 39.3 MB geolibre-desktop-2.3.0-x64.msix | 35.52 MB geolibre-desktop-2.3.0-x64-portable.zip | 35.46 MB |
GeoLibre v2.3.0 for macOSGeoLibre.Desktop_2.3.0_x64.dmg | 37.71 MB GeoLibre.Desktop_2.3.0_aarch64.dmg | 37.15 MB geolibre-desktop_darwin_x64 | 40.42 MB geolibre-desktop_darwin_aarch64 | 39.92 MB |
GeoLibre v2.3.0 for LinuxGeoLibre.Desktop_2.3.0_amd64.deb | 36.3 MB GeoLibre.Desktop_2.3.0_amd64.AppImage | 112.02 MB GeoLibre.Desktop-2.3.0-1.x86_64.rpm | 36.3 MB geolibre-desktop_linux_x64 | 41.93 MB |
GeoLibre v2.3.0 for Androidgeolibre-android-x86_64.apk | 46.08 MB geolibre-android-x86.apk | 46 MB geolibre-android-arm64.apk | 45.16 MB geolibre-android-arm.apk | 41.94 MB |
Others Download related to GeoLibre v2.3.0GeoLibre.Desktop_2.3.0_x64.app.tar.gz | 36.8 MB GeoLibre.Desktop_2.3.0_aarch64.app.tar.gz | 36.25 MB |
GeoLibre v2.3.0 Release Notes:What's Changedfix(android): drop native-tls/openssl-sys from Android build; bump setup-android to v4 by @giswqs in https://github.com/opengeos/GeoLibre/pull/1336 feat(search): jump to a typed lat/lon in the place-search box by @giswqs in https://github.com/opengeos/GeoLibre/pull/1340 feat(add-data): support delimited text layers in any CRS by @giswqs in https://github.com/opengeos/GeoLibre/pull/1341 feat(layers): copy and paste layer styles between layers by @giswqs in https://github.com/opengeos/GeoLibre/pull/1342 chore(deps): bump maplibre-gl-raster to 0.12.0 and maplibre-gl-planetary-computer to 0.4.0 by @giswqs in https://github.com/opengeos/GeoLibre/pull/1344 feat(time-slider): mosaic (STAC/MosaicJSON) sources with GPU/WASM engine by @giswqs in https://github.com/opengeos/GeoLibre/pull/1345 fix(time-slider): restore the dock open, add mosaic NoData, fix the WASM nodata border by @giswqs in https://github.com/opengeos/GeoLibre/pull/1346 fix(embed): hide the Browser rail (and all side panels) in maponly mode by @giswqs in https://github.com/opengeos/GeoLibre/pull/1347 chore(deps): bump maplibre-gl-time-slider to 1.5.0 by @giswqs in https://github.com/opengeos/GeoLibre/pull/1348 fix(map): collapse the attribution control after the map loads by @giswqs in https://github.com/opengeos/GeoLibre/pull/1349 feat(processing): add Random extract vector tool by @giswqs in https://github.com/opengeos/GeoLibre/pull/1352 feat(android): make the build Google Play-ready by @giswqs in https://github.com/opengeos/GeoLibre/pull/1350 fix(print-layout): draw point markers in the legend by @giswqs in https://github.com/opengeos/GeoLibre/pull/1356 feat(map): auto-enable terrain when the Terrain control is turned on by @giswqs in https://github.com/opengeos/GeoLibre/pull/1358 fix(whitebox): implement Assign Projection tools in the WASM engine (#1355) by @giswqs in https://github.com/opengeos/GeoLibre/pull/1359 fix(plugins): update Add PMTiles sample data URL to a reachable release by @giswqs in https://github.com/opengeos/GeoLibre/pull/1361 feat(processing): add Emerging Hot Spot Analysis (space-time cube) by @giswqs in https://github.com/opengeos/GeoLibre/pull/1360 fix(vector): reproject GeoJSON declaring a non-WGS84 crs member by @giswqs in https://github.com/opengeos/GeoLibre/pull/1362 feat(processing): deep-link Whitebox tools via ?tool= URL param by @giswqs in https://github.com/opengeos/GeoLibre/pull/1363 chore(deps): bump the actions-minor-patch group with 2 updates by @dependabot[bot] in https://github.com/opengeos/GeoLibre/pull/1365 chore(deps): bump the cargo-minor-patch group in /apps/geolibre-desktop/src-tauri with 3 updates by @dependabot[bot] in https://github.com/opengeos/GeoLibre/pull/1364 chore(deps): bump actions/setup-node from 6 to 7 by @dependabot[bot] in https://github.com/opengeos/GeoLibre/pull/1366 chore(deps): bump actions/setup-python from 6 to 7 by @dependabot[bot] in https://github.com/opengeos/GeoLibre/pull/1367 chore(deps): bump actions/checkout from 4 to 7 by @dependabot[bot] in https://github.com/opengeos/GeoLibre/pull/1368 chore(deps): bump the npm-minor-patch group with 33 updates by @dependabot[bot] in https://github.com/opengeos/GeoLibre/pull/1369 fix(core): adapt to createExpression rootKey arg in style-spec 26 by @giswqs in https://github.com/opengeos/GeoLibre/pull/1371 fix(mobile): request Android/iOS location permission for GPS capture by @giswqs in https://github.com/opengeos/GeoLibre/pull/1373 feat(ios): scaffold Tauri iOS build (config, Info.plist, CI, docs) by @giswqs in https://github.com/opengeos/GeoLibre/pull/1374 fix(raster): apply min/max zoom constraint to COG layers by @giswqs in https://github.com/opengeos/GeoLibre/pull/1376 chore(deps): patch fast-uri high advisory, scope audit to prod deps by @giswqs in https://github.com/opengeos/GeoLibre/pull/1378 feat(plugins): add GeoLens catalog browser plugin by @giswqs in https://github.com/opengeos/GeoLibre/pull/1377 feat(layers): Layers-panel symbology swatches + auto on-map legend by @giswqs in https://github.com/opengeos/GeoLibre/pull/1379 feat(vector): pick which GeoPackage layers to load in the Add Vector panel by @giswqs in https://github.com/opengeos/GeoLibre/pull/1382 fix(desktop): ship the sidecar lockfile so Jupyter/sidecar start in installed builds by @giswqs in https://github.com/opengeos/GeoLibre/pull/1386 fix(symbology): graduated classes are discrete, with correct class breaks by @giswqs in https://github.com/opengeos/GeoLibre/pull/1387 fix(processing): restore parameters for WASM tools whose manifest declares none by @giswqs in https://github.com/opengeos/GeoLibre/pull/1388 Publish PR previews to pages-preview, drop Netlify by @giswqs in https://github.com/opengeos/GeoLibre/pull/1391 chore(deps): geolibre-wasm 1.1.0, maplibre-gl-basemap-control 0.13.0 by @giswqs in https://github.com/opengeos/GeoLibre/pull/1395 feat(controls): Logos submenu with MapLibre and Maptoolkit logos by @giswqs in https://github.com/opengeos/GeoLibre/pull/1396 docs: change heading 'Set up' to 'Setup' in contributing.md by @amir-rezaei in https://github.com/opengeos/GeoLibre/pull/1398 feat(legend): auto-generated on-map Legend panel with customizable entries by @giswqs in https://github.com/opengeos/GeoLibre/pull/1397 fix(shell): only surface project URL load failures on the map by @giswqs in https://github.com/opengeos/GeoLibre/pull/1399 feat: persist the active layer and lift the GeoLens feature cap by @giswqs in https://github.com/opengeos/GeoLibre/pull/1400 fix(layers): correct raster style paste for index mode and stop copying opacity by @giswqs in https://github.com/opengeos/GeoLibre/pull/1402 fix(geolens): page the GeoJSON loader instead of passing the feature limit through by @giswqs in https://github.com/opengeos/GeoLibre/pull/1401 fix(time-slider): offer bare-year columns in the Bind to Time Slider dialog by @giswqs in https://github.com/opengeos/GeoLibre/pull/1403 fix(legend): merge graduated color and size into one legend block by @giswqs in https://github.com/opengeos/GeoLibre/pull/1413 docs: fix Title Case section heading and fork clone URL placeholder in CONTRIBUTING.md by @amir-rezaei in https://github.com/opengeos/GeoLibre/pull/1407 docs: fix Title Case section headings and clone URL placeholder in docs/contributing.md by @amir-rezaei in https://github.com/opengeos/GeoLibre/pull/1408 fix(citation): quote DOI string literal in CITATION.cff by @amir-rezaei in https://github.com/opengeos/GeoLibre/pull/1409 fix(sidecar): serialize lifecycle and reclaim orphaned port 8765 by @giswqs in https://github.com/opengeos/GeoLibre/pull/1414 chore(deps): bump time-slider to 1.6.0, clear high audit findings by @giswqs in https://github.com/opengeos/GeoLibre/pull/1416 chore(deps): bump geolibre-wasm to 1.2.0, regenerate menu catalog by @giswqs in https://github.com/opengeos/GeoLibre/pull/1417 fix(share): record only plugin URLs a project uses, revalidate on load by @giswqs in https://github.com/opengeos/GeoLibre/pull/1418 feat: multi-profile support for AI assistant providers by @rahuldshetty in https://github.com/opengeos/GeoLibre/pull/1410 fix: Raster Calculator equality operations match nothing by @giswqs in https://github.com/opengeos/GeoLibre/pull/1422 feat(layers): report raster CRS and pixel size in the metadata dialog by @giswqs in https://github.com/opengeos/GeoLibre/pull/1421 i18n: complete catalog coverage and route the remaining hard-coded strings through t() by @giswqs in https://github.com/opengeos/GeoLibre/pull/1423 chore(release): v2.3.0 by @giswqs in https://github.com/opengeos/GeoLibre/pull/1424
New ContributorsFull Changelog: https://github.com/opengeos/GeoLibre/compare/v2.2.0...v2.3.0 |
Performance and User Experience
GeoLibre feels considerably lighter and more modern than many traditional GIS applications. The browser-first design makes it easy to open the application and start exploring data without spending time configuring a large desktop environment.
The use of DuckDB-WASM Spatial is particularly interesting for local analytical workloads, while MapLibre and deck.gl provide a modern foundation for rendering maps and 3D information.
The project is also developing quickly. The current stable release has expanded considerably beyond simple mapping, adding project files, plugins, processing tools, cloud integrations, 3D capabilities, and spatial SQL.
That rapid development is both a strength and a consideration. Users looking for the mature ecosystem and extensive tooling of established GIS software may still prefer QGIS for complex professional workflows.
Pros
Free and open source.
Runs in the browser, desktop, mobile, and Jupyter.
Local-first approach to data processing.
Modern cloud-native GIS support.
Powerful spatial SQL capabilities.
Supports raster, vector, 3D, and LiDAR data.
Extensive geoprocessing tools.
Plugin marketplace and API.
Modern and lightweight interface.
MIT licensed.
Cons
Still much younger than established GIS platforms.
Ecosystem is smaller than QGIS.
Some advanced GIS workflows may still require traditional desktop software.
Rapid development can mean features and interfaces change quickly.
Users unfamiliar with cloud-native geospatial formats may need some time to understand the workflow.
Who Should Use GeoLibre?
GeoLibre is a strong choice for GIS professionals, researchers, developers, students, data scientists, and organizations working with modern geospatial datasets.
It is particularly appealing if you want a GIS application that can work directly with cloud-native data, perform analysis locally, and remain accessible through a browser without requiring a traditional desktop installation.
Developers should also find the combination of TypeScript, React, DuckDB, MapLibre, deck.gl, and Tauri interesting for building customized geospatial workflows.
Final Verdict
GeoLibre is an impressive modern take on GIS software. Instead of trying to reproduce every feature of established desktop GIS applications, it focuses on browser-based workflows, local processing, cloud-native datasets, spatial SQL, modern visualization, and portability.
Its rapid development is perhaps its biggest advantage. The project has grown quickly from a lightweight mapping application into a much broader GIS platform with raster processing, LiDAR, 3D Tiles, spatial databases, plugins, and AI-assisted geospatial functionality.
It is not yet a complete replacement for QGIS in every professional workflow, but GeoLibre is already a compelling option for anyone interested in lightweight, private, and modern GIS software.