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
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.