{"id":13494329,"url":"https://github.com/libgeos/geos","last_synced_at":"2025-04-29T18:50:36.240Z","repository":{"id":37819349,"uuid":"2651432","full_name":"libgeos/geos","owner":"libgeos","description":"Geometry Engine, Open Source","archived":false,"fork":false,"pushed_at":"2025-04-21T17:36:54.000Z","size":86023,"stargazers_count":1302,"open_issues_count":92,"forks_count":376,"subscribers_count":65,"default_branch":"main","last_synced_at":"2025-04-21T18:33:01.187Z","etag":null,"topics":["c","c-plus-plus","cpp","geometry"],"latest_commit_sha":null,"homepage":"https://libgeos.org","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libgeos.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS.md","contributing":null,"funding":null,"license":"COPYING","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2011-10-26T14:36:13.000Z","updated_at":"2025-04-21T17:25:33.000Z","dependencies_parsed_at":"2023-02-13T05:16:02.131Z","dependency_job_id":"1f298125-fae6-41b2-8814-e611a065ff03","html_url":"https://github.com/libgeos/geos","commit_stats":{"total_commits":6447,"total_committers":86,"mean_commits":74.96511627906976,"dds":0.5751512331316891,"last_synced_commit":"d84cf1aec56c9948f4f22dfbbbd331f61c32b132"},"previous_names":[],"tags_count":136,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libgeos%2Fgeos","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libgeos%2Fgeos/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libgeos%2Fgeos/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libgeos%2Fgeos/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libgeos","download_url":"https://codeload.github.com/libgeos/geos/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":251564560,"owners_count":21609923,"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":["c","c-plus-plus","cpp","geometry"],"created_at":"2024-07-31T19:01:23.967Z","updated_at":"2025-04-29T18:50:36.221Z","avatar_url":"https://github.com/libgeos.png","language":"C++","funding_links":[],"categories":["C++","General Libraries"],"sub_categories":[],"readme":"GEOS -- Geometry Engine, Open Source\n====================================\n\nGEOS is a C++ library for performing operations on two-dimensional vector\ngeometries. It is primarily a port of the [JTS Topology\nSuite](https://github.com/locationtech/jts) Java library.  It provides many of\nthe algorithms used by [PostGIS](http://www.postgis.net/), the\n[Shapely](https://pypi.org/project/Shapely/) package for Python, the\n[sf](https://github.com/r-spatial/sf) package for R, and others.\n\nMore information is available the [project homepage](https://libgeos.org).\n\nThe official Git repository is at [GitHub](https://github.com/libgeos/geos).\n\n## Build Status\n\n| CI    | Status | CI    | Status | CI    | Status |\n| :---: | :----- | :---: | :----- | :---: | :----- |\n| GitHub | [![github](https://github.com/libgeos/geos/workflows/CI/badge.svg?branch/main)](https://github.com/libgeos/geos/actions?query=workflow:CI+branch:main) | Bessie | [![bessie](https://debbie.postgis.net/buildStatus/icon?job=GEOS_Worker_Run/label=bessie\u0026build=last:${params.reference=refs/heads/main})](https://debbie.postgis.net/view/GEOS/job/GEOS_Worker_Run/label=bessie) | Debbie | [![debbie](https://debbie.postgis.net/buildStatus/icon?job=GEOS_Master)](https://debbie.postgis.net/view/GEOS/job/GEOS_Master/) |\n| Winnie | [![winnie](https://winnie.postgis.net/view/GEOS/job/GEOS_Master/badge/icon)](https://winnie.postgis.net/view/GEOS/job/GEOS_Master/) |  Berrie | [![berrie](https://debbie.postgis.net/buildStatus/icon?job=GEOS_Worker_Run/label=berrie\u0026build=last:${params.reference=refs/heads/main})](https://debbie.postgis.net/view/GEOS/job/GEOS_Worker_Run/label=berrie) | Berrie64 | [![berrie64](https://debbie.postgis.net/buildStatus/icon?job=GEOS_Worker_Run/label=berrie64\u0026build=last:${params.reference=refs/heads/main})](https://debbie.postgis.net/view/GEOS/job/GEOS_Worker_Run/label=berrie64) |\n\n## Community Resources\n\n* Website: https://libgeos.org\n* **git** repository: https://github.com/libgeos/geos\n* [**geos-devel** mailing list](https://lists.osgeo.org/mailman/listinfo/geos-devel) and [archive](https://lists.osgeo.org/pipermail/geos-devel/)\n* **#geos** chat channel (all bridged):\n  * Matrix: https://matrix.to/#/#geos:osgeo.org\n  * IRC: irc://irc.libera.chat/#osgeo-geos (https://kiwiirc.com/nextclient/irc.libera.chat/#osgeo-geos)\n  * Slack: https://osgeo.slack.com/messages/C07RKJ06B/\n\n## Build/Install\n\nSee the [INSTALL](INSTALL.md) file.\n\n## Reference Docs\n\n* [C API](https://libgeos.org/doxygen/geos__c_8h.html)\n* [C++ API](https://libgeos.org/doxygen/cpp_iface.html)\n\nSee also the [C API tutorial](https://libgeos.org/usage/c_api/)\nand the [C++ API tutorial](https://libgeos.org/usage/cpp_api/).\nThere are code [examples](https://github.com/libgeos/geos/tree/main/examples) in the code repository.\n\n## Client Applications\n\n### Using the C interface\n\nGEOS promises long-term stability of the C API. In general, successive releases\nof the C API may add new functions but will not remove or change existing types\nor function signatures. The C library uses the C++ interface, but the C library\nfollows normal ABI-change-sensitive versioning, so programs that link only\nagainst the C library should work without relinking when GEOS is upgraded. For\nthis reason, it is recommended to use the C API for software that is intended\nto be dynamically linked to a system install of GEOS.\n\nThe `geos-config` program can be used to determine appropriate compiler and\nlinker flags for building against the C library:\n\n    CFLAGS += `geos-config --cflags`\n    LDFLAGS += `geos-config --ldflags` -lgeos_c\n\nAll functionality of the C API is available through the `geos_c.h` header file.\n\nDocumentation for the C API is provided via comments in the `geos_c.h` header\nfile. C API usage examples can be found in the [examples](examples/) directory.\n\n### Using the C++ interface\n\nThe C++ interface to GEOS provides a more natural API for C++ programs, as well\nas additional functionality that has not been exposed in the C API.  However,\ndevelopers who decide to use the C++ interface should be aware that GEOS does\nnot promise API or ABI stability of the C++ API between releases.  Breaking\nchanges in the C++ API/ABI are not typically announced or included in the NEWS\nfile.\n\nThe C++ library name will change on every minor release.\n\nThe `geos-config` program can be used to determine appropriate compiler and\nlinker flags for building against the C++ library:\n\n    CFLAGS += `geos-config --cflags`\n    LDFLAGS += `geos-config --ldflags` -lgeos\n\nA compiler warning may be issued when building against the C++ library. To\nremove the compiler warning, define `USE_UNSTABLE_GEOS_CPP_API` somewhere\nin the program.\n\nCommonly-used functionality of GEOS is available in the `geos.h` header file.\nLess-common functionality can be accessed by including headers for individual\nclasses, e.g. `#include \u003cgeos/algorithm/distance/DiscreteHausdorffDistance.h\u003e`.\n\n    #include \u003cgeos.h\u003e\n\nC++ usage examples can be found in the [examples](examples/) directory.\n\n### Using other languages\n\nGEOS has bindings in many languages, see the [bindings\npage](https://libgeos.org/usage/bindings/).\n\n## Documentation\n\nAPI documentation can be generated using Doxygen. Documentation is not included\nin the default build. To build the documentation, run:\n\n    cmake -DBUILD_DOCUMENTATION=YES\n    cmake --build . --target docs\n\n## Style\n\nTo format your code into the desired style, use the astyle\nversion included in source tree:\n\n    tools/astyle.sh \u003cyourfile.cpp\u003e\n\n## Testing\n\nSee documentation in [tests/README.md](tests/README.md).\n\n## Tools\n\n* `geosop` - a CLI for GEOS.  Documentation is in [util/geosop/README.md](util/geosop/README.md).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibgeos%2Fgeos","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibgeos%2Fgeos","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibgeos%2Fgeos/lists"}