{"id":28956825,"url":"https://github.com/developmentseed/tipg","last_synced_at":"2025-06-23T21:40:56.856Z","repository":{"id":66924994,"uuid":"546152126","full_name":"developmentseed/tipg","owner":"developmentseed","description":"Simple and Fast Geospatial OGC Features and Tiles API for PostGIS.","archived":false,"fork":false,"pushed_at":"2025-05-06T07:44:07.000Z","size":15275,"stargazers_count":174,"open_issues_count":22,"forks_count":26,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-06-07T07:17:50.722Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://developmentseed.org/tipg/","language":"PLpgSQL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/developmentseed.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-10-05T16:03:59.000Z","updated_at":"2025-05-26T16:03:55.000Z","dependencies_parsed_at":"2023-10-02T14:08:55.248Z","dependency_job_id":"c7a718ae-517c-4160-b5f4-eb8f01e75850","html_url":"https://github.com/developmentseed/tipg","commit_stats":null,"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/developmentseed/tipg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Ftipg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Ftipg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Ftipg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Ftipg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/developmentseed","download_url":"https://codeload.github.com/developmentseed/tipg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/developmentseed%2Ftipg/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261561182,"owners_count":23177544,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-23T21:40:56.602Z","updated_at":"2025-06-23T21:40:56.833Z","avatar_url":"https://github.com/developmentseed.png","language":"PLpgSQL","readme":"\u003cp align=\"center\"\u003e\n  \u003cimg width=\"500\" src=\"https://user-images.githubusercontent.com/10407788/204477834-2533241a-5927-4f56-959e-4e8494027bc0.png\"/\u003e\n  \u003cp align=\"center\"\u003eSimple and Fast Geospatial OGC Features and Tiles API for PostGIS.\u003c/p\u003e\n\u003c/p\u003e\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/developmentseed/tipg/actions?query=workflow%3ACI\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://github.com/developmentseed/tipg/workflows/CI/badge.svg\" alt=\"Test\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/developmentseed/tipg\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://codecov.io/gh/developmentseed/tipg/branch/main/graph/badge.svg\" alt=\"Coverage\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/tipg\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://img.shields.io/pypi/v/tipg?color=%2334D058\u0026label=pypi%20package\" alt=\"Package version\"\u003e\n  \u003c/a\u003e\n  \u003ca href=\"https://github.com/developmentseed/tipg/blob/main/LICENSE\" target=\"_blank\"\u003e\n      \u003cimg src=\"https://img.shields.io/github/license/developmentseed/tipg.svg\" alt=\"License\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n**Documentation**: \u003ca href=\"https://developmentseed.org/tipg/\" target=\"_blank\"\u003ehttps://developmentseed.org/tipg/\u003c/a\u003e\n\n**Source Code**: \u003ca href=\"https://github.com/developmentseed/tipg\" target=\"_blank\"\u003ehttps://github.com/developmentseed/tipg\u003c/a\u003e\n\n---\n\n`tipg`, pronounced *T[ee]pg*, is a **Python** package that helps create lightweight OGC **Features** and **Tiles** API with a PostGIS Database backend. The API has been designed for [OGC Features](https://ogcapi.ogc.org/features) and [OGC Tiles](https://ogcapi.ogc.org/tiles/) specifications.\n\n\u003e **Note**\n\u003e This project is the result of the merge between [tifeatures](https://github.com/developmentseed/tifeatures) and [timvt](https://github.com/developmentseed/timvt).\n\n## Install\n\n```bash\n$ python -m pip install pip -U\n$ python -m pip install tipg\n\n# or from source\n$ git clone https://github.com/developmentseed/tipg.git\n$ cd tipg\n$ python -m pip install -e .\n```\n\n## OGC Specifications\n\nSpecification | Status | link |\n|          -- |     -- |   -- |\nOGC Common Part 1: Core                |  ✅ | https://docs.ogc.org/DRAFTS/19-072.html\nOGC Common Part 2: Geospatial Data     |  ✅ | http://docs.ogc.org/DRAFTS/20-024.html\nOGC Features Part 1: Core              |  ✅ | https://docs.ogc.org/is/17-069r4/17-069r4.html\nOGC Features Part 2: CRS by Reference  |  ❌ | https://docs.ogc.org/is/18-058r1/18-058r1.html\nOGC Features Part 3: Filtering / CQL2  |  ✅ | https://docs.ogc.org/DRAFTS/19-079r1.html\nOGC Tiles Part 1: Core                 |  ✅ | https://docs.ogc.org/is/20-057/20-057.html\n\nNotes:\n\nWe chose to avoid implementing the second part of the specification to prevent the introduction of CRS-based GeoJSON. We may review this decision in the future.\n\nWhile we tried to follow OGC specifications to the letter, some API endpoints might have more capabilities (e.g., geometry column selection).\n\n## PostGIS/PostgreSQL\n\n`tipg` relies greatly on PostGIS' `ST_*` functions. PostGIS must be installed on your PostgreSQL database.\n\n```sql\nSELECT name, default_version,installed_version\nFROM pg_available_extensions WHERE name LIKE 'postgis%' or name LIKE 'address%';\n```\n\n```sql\nCREATE EXTENSION postgis;\n```\n\n### Configuration\n\nTo be able to work, the application will need access to the database. `tipg` uses [Starlette](https://www.starlette.io/config/)'s configuration pattern, which makes use of environment variables or a `.env` file to pass variables to the application.\n\nAn example of a `.env` file can be found in [.env.example](https://github.com/developmentseed/tipg/blob/main/.env.example)\n\n```\n# you need to define the DATABASE_URL directly\nDATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis\n```\n\nMore info about configuration options at https://developmentseed.org/tipg/user_guide/configuration/\n\n## Launch\n\n```bash\n$ python -m pip install uvicorn\n\n# Set your PostGIS database instance URL in the environment\n$ export DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis\n$ uvicorn tipg.main:app\n\n# or using Docker\n\n$ docker-compose up app\n```\n\n\u003cp align=\"center\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/e68ff285-8073-4715-9280-63aa3b67e4cf\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/ffd95cf0-22f9-4a98-9682-bc9324c0868b\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/9b02371f-49b9-462f-bec0-a2546ea4ec07\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/3babe432-bb19-4cf0-a808-cbacd997a9a7\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/2f16dc77-e82a-4756-b528-fb1544ccb9bc\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/989b3a58-8cd2-46db-bf53-e60609dd82ba\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/46d9acb0-465d-470d-bdae-2999b47ad65f\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/d4a079d0-069a-4399-9b56-307fbba5e383\"\u003e\n  \u003cimg width=\"700\" src=\"https://github.com/developmentseed/tipg/assets/10407788/17494573-da43-4fd5-81f9-1cfb4e8c91f2\"\u003e\n\u003c/p\u003e\n\n\n## Docker images\n\nWe are publishing two different docker images on `tag` and on every commit to `main` branch:\n\n| | Gunicorn |\n|          -- |     -- |\nmain commit | `ghcr.io/developmentseed/tipg:latest`\ntags | `ghcr.io/developmentseed/tipg:X.X.X`\ndockerfile | [/dockerfiles/Dockerfile](https://github.com/developmentseed/tipg/blob/main/dockerfiles/Dockerfile)\n\nSee all version at https://github.com/developmentseed/tipg/pkgs/container/tipg\n\n```\n$ docker run \\\n    -p 8000:8000 \\\n    -e DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis \\\n    ghcr.io/developmentseed/tipg:latest \\\n    uvicorn tipg.main:app --host 0.0.0.0 --port 8000 --workers 1\n\n# using Gunicorn\n$ docker run \\\n    -p 8000:8000 \\\n    -e DATABASE_URL=postgresql://username:password@0.0.0.0:5432/postgis \\\n    ghcr.io/developmentseed/tipg:latest \\\n    gunicorn -k uvicorn.workers.UvicornWorker tipg.main:app --bind 0.0.0.0:8000 --workers 1\n```\n\n## Contribution \u0026 Development\n\nSee [CONTRIBUTING.md](https://github.com/developmentseed/tipg/blob/main/CONTRIBUTING.md)\n\n## License\n\nSee [LICENSE](https://github.com/developmentseed/tipg/blob/main/LICENSE)\n\n## Authors\n\nCreated by [Development Seed](\u003chttp://developmentseed.org\u003e)\n\n## Changes\n\nSee [CHANGES.md](https://github.com/developmentseed/tipg/blob/main/CHANGES.md).\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopmentseed%2Ftipg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdevelopmentseed%2Ftipg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdevelopmentseed%2Ftipg/lists"}