Self-hosted service
qgis/QGIS avatar
qgis/QGIS

QGIS: a Qt and C++ GIS that ships two release lines and leaves formats to upstream drivers

QGIS is a free, open source, cross platform (lin/win/mac) geographical information system (GIS)

14,835 stars3,603 forksC++GPL-2.0

At a glance

What is it?
QGIS wraps GDAL, OGR and MDAL in one data model, runs a processing framework of 200 native algorithms, and has a headless twin in QGIS Server. The trade is that format coverage and algorithm count both depend on what you install beside it, and two version lines ship on the same day.
Who is it for?
QGIS suits a team that wants ESRI style cartography and a Python API without a commercial licence, and it suits server work through QGIS Server, which shares the desktop code base and speaks WMS, WFS, WFS3 and WCS. Pick your line deliberately rather than tracking whatever is newest, because 4.2.3 and 3.44.15 both shipped on 2026-09-25.
Can I use it commercially?
Yes, with conditions. GPL-2.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
Is it still maintained?
Yes. The repository received new commits within the last day.
What is it written in?
Mainly C++, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.

From daily snapshots

Star history

  • qgis/QGIS14,835 ★ · +418
Star history
Repository2026-09-222026-11-14
qgis/QGIS14.4k14.8k

418 Stars in the last 53 days, measured from the daily GitHub snapshot. Compare with other projects

Editorial analysis

Format coverage is a property of GDAL, OGR and MDAL, not of QGIS

The data side of QGIS is a single abstraction layer sitting on three upstream projects, and that is where both its reach and its limits live. Raster formats arrive through GDAL, vector formats through OGR, and mesh formats through MDAL, with the README naming GeoTIFF, GeoPackage, ERDAS Imagine SDTS and WMS on the raster side, ESRI shapefiles, SpatiaLite, PostGIS, Oracle, MSSQL, WFS and Vector Tiles on the vector side, NetCDF, GRIB and 2DM as mesh, and LAS/LAZ with EPT for point clouds. A database and a file therefore arrive in the same browser with the same interface, and reprojection between coordinate reference systems happens on the fly. The consequence for a reader is direct: when a format you need is missing, editing QGIS is not the fix, because the driver list lives in GDAL's raster index, OGR's formats page and MDAL's supported formats. Check those three lists before you design a pipeline around a format.

Only 200 algorithms ship natively, the other thousand arrive with a provider

QGIS carries a processing framework with more than 200 native algorithms in it, and then opens the door to well over 1000 more through providers, among them GDAL, SAGA, GRASS and OrfeoToolbox, plus your own models and processing scripts. The split matters more than the headline numbers suggest. The native algorithms are the part QGIS ships and versions itself. Everything above that line is supplied by something outside the application, so a batch script naming a SAGA or GRASS algorithm resolves only where that provider is installed. So a workflow that works on the machine where you wrote it can fail on a colleague's machine where that provider is missing. Model designer and batch processing are the parts you control, and the provider set is the part you inherit.

QGIS Server is the same code base with the desktop attached to nothing

QGIS Server is the headless half: a map server running on Linux, macOS, Windows or inside a docker container, sharing the same code base as the desktop application rather than reimplementing it. It speaks WMS, WFS, WFS3 through the OGC API for Features, and WCS, which is what makes it drop into an existing stack rather than demand a new one. It works behind any web server such as Apache or nginx, and equally well standalone, and it is customizable with Python scripting while keeping the cartography the desktop application produces, printing included. The practical upside is that a style you built in the desktop app is a style the server already knows. The limit is scope: the server section claims protocols and cartography, while features such as the monochrome and colour blindness preview modes exist on the editor side and have no server equivalent to serve.

Two tag lines, both cut on the same day from a master branch

The release record is unusual enough to trip people up. Tags 4.2.3 and 3.44.15 were both published on 2026-09-25, six seconds apart, and 3.44.14 landed on 2026-08-28. The tag names themselves encode the line, as final-4_2_3 and final-3_44_15, and the README says development and releases follow a time based schedule. So the project is not shipping one current version, it is shipping a newer line and a maintained older one in parallel, while the default branch is master, which is also the branch the README's continuous integration badges query. For a team this means there is no such thing as the latest QGIS, only a line you have chosen. Installing whichever number a tutorial mentions gets you a line you did not pick.

requirements.txt is a contributor toolchain, and the README has no Python 3 example

The Python surface of the project is real, with a Python and C++ API for standalone headless applications and in-application scripting called PyQGIS. What the repository shows you, though, is the contributor side of it. The Python requirements list at the root holds six entries: termcolor, mock, nose2, psycopg2, numpy and pyyaml. Read as a test harness rather than an install path, nose2 and mock are the runner and its mocking library, psycopg2 is a PostgreSQL client for Python, and numpy and pyyaml cover numerics and YAML. The README also carries a commented out Python console example with a note saying it was killed because the example provided is Python2, not Python3, which means the quick entry point into PyQGIS is a documentation page rather than a snippet you can copy from here.

Seven packaging tracks sit in one root directory

Distribution is not handled by a single script, and the root directory shows why the project is hard to build from a clean machine. There is a debian directory and an rpm directory for Linux packages, a nix directory with flake.nix and flake.lock for the Nix route, ms-windows for Windows, a .docker directory backing the qgis/qgis images on Docker Hub, a vcpkg directory, and a postinstall directory, next to an external directory for bundled third party code. Linux has its own top level directory, and platform, cmake, cmake_templates and a root CMakeLists.txt carry the build. Formatting and static analysis are configured too, through .clang-format, .clang-tidy and .ruff.toml. The same goes for getting the software rather than building it: the README's table of contents hands that off to an Installing and using QGIS section, separate Documentation pages, and Help and support channels, and the site at https://qgis.org is where the packages and manuals live. Build instructions sit in INSTALL.md at the repository root.

Symbology replication is the design centre, and it stops at symbology

QGIS states its ambition plainly: near-complete replication, and significant extension, of the symbology options available in proprietary software by ESRI. That is the project's own wording, and it is worth reading closely because it bounds what the claim covers. Symbology means symbols, labels, legends and the graphics around your features, not the analysis, the enterprise data models or the licensing of the product on the other side. Around that core the project adds data-defined overrides, blending modes, draw effects, more than 500 built-in colour ramps from cpt-city and ColorBrewer, geometry generators, and saved layouts pinned to a scale, extent, style and decorations. It also respects styling embedded in data sources such as KML, TAB files and Mapbox-GL styled vector tiles, and the plugin ecosystem includes converters for ESRI style files. A team arriving from ESRI software finds familiar cartography waiting, and finds that everything past it is their own work.

Editorial conclusion

QGIS suits a team that wants ESRI style cartography and a Python API without a commercial licence, and it suits server work through QGIS Server, which shares the desktop code base and speaks WMS, WFS, WFS3 and WCS. Pick your line deliberately rather than tracking whatever is newest, because 4.2.3 and 3.44.15 both shipped on 2026-09-25. Before you commit, check your formats against the GDAL, OGR and MDAL driver lists the README points to, and check which processing provider supplies each algorithm your script names, because the native set is only part of the catalogue.

Frequently asked questions

what is qgis

A free and open source geographical information system that runs on Unix platforms, Windows and MacOS, developed with the Qt toolkit and C++ since 2002. It also ships QGIS Server, a headless map server sharing the same code base.

Is QGIS still free?

The repository is licensed GPL-2.0, with the COPYING file at the root next to Exception_to_GPL_for_Qt.txt, which is the file that records the Qt exception. The README calls it a free-and-open-source GIS.

Is QGIS beginner friendly?

The README calls QGIS user-friendly and says the interface and application settings cater to power-users and beginners alike, with multilingual support in the GUI.

Is QGIS the same as ArcGIS?

The README names ArcGIS only as a web service type (ArcGIS REST) that QGIS can access. What it states is that QGIS aims at near-complete replication, and significant extension, of the symbology options available in proprietary software by ESRI, and that QGIS is free and open source under GPL-2.0.

qgis examples

The README links an Amazing maps created using QGIS page and the Map Gallery on QGIS Hub at maps.qgis.org, plus a third gallery hosted as a Flickr group. Its own examples cover temporal animation, a 3D map view, travel isochrones, the model designer, the style manager and plugins.

Official sources

  1. License: GPL-2.0
  2. Project website
  3. qgis/QGIS on GitHub
  4. README
  5. Releases
Community

Where developers are discussing it

Posts on Hacker News, dev.to and Lobsters that link to this repository, found by our scan of those communities. 0 in the last 30 days; newest first.

Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/qgis-qgis.svg)](https://hysenlabs.com/projects/qgis-qgis)

Star history chart for your README

markdown
[![Star history](https://hysenlabs.com/chart/qgis-qgis.svg)](https://hysenlabs.com/projects/qgis-qgis)

Was this useful?