Skip to content

Welcome to geoserverx

geoserverx is a modern Python package that provides an efficient and scalable way to interact with Geoserver REST APIs. It leverages the asynchronous capabilities of Python to offer a high-performance and reliable solution for managing Geoserver data and services.

With geoserverx, users can easily access and modify data in Geoserver, such as uploading and deleting shapefiles, publishing layers, creating workspaces, styles, etc. . The package supports asynchronous requests along with synchronous method to the Geoserver REST API, which enables users to perform multiple tasks simultaneously, improving performance and reducing wait times.

Apart from being implemented as Python package, geoserverx also provides CLI support for all of its operations. Which makes it useful for people who want to avoid Python all-together.

Checkout official pypi link here

Get Started

geoserverx can be installed using pip or pip3

pip install geoserverx

---> 100%

After which , It can be used in Python projects using sync, async methods or can ve used as Command Line tool

Architecture

geoserverx is built on top of httpx and pydantic libraries. It uses httpx for making HTTP requests and pydantic for data validation. The package is designed to be modular and extensible, allowing for easy integration with other libraries and frameworks.

The package is structured into two main components: the SyncGeoServerX class and the AsyncGeoServerX class. The SyncGeoServerX class provides synchronous methods for interacting with Geoserver, while the AsyncGeoServerX class provides asynchronous methods using the anyio library

layout

For testing purpose

If you don't have GeoServer installed locally, feel free to use following command to quickly spin up Geoserver using Docker

docker run -e GEOSERVER_ADMIN_USER=admin -e GEOSERVER_ADMIN_PASSWORD=geoserver -e SAMPLE_DATA=true -p 8080:8080 kartoza/GeoServer

Please note that this will work on amd64 architecture machines.