MIT License

项目介绍

pola-rs/geopolars 是一个托管在 GitHub 上的开源项目,主要使用 Python 编写,采用 MIT License 许可证,目前获得 955 个 Star、35 次 Fork。

仓库全名
pola-rs/geopolars
开源许可证
MIT License
Star 数
955
Fork 数
35
未关闭 Issue
38

README 摘要

GeoPolars Geospatial DataFrames for Rust and Python Update (December 2025): GeoPolars had been blocked on Polars supporting Arrow extension types, but as of November 2025, Polars has now added support for Arrow extension types. This project will now move forward, subject to time constraints. See issue thread here for more information. If you'd like to contribute, for the time being, feel free to comment on that…

完整内容见 GitHub 原始 README 或本页 。

常见问题

geopolars 用什么语言开发?

主要使用 Python 编写,采用 MIT License 许可证,目前有 955 个 Star。

geopolars 可以免费商用吗?

仓库采用 MIT License 许可证,可免费使用与修改,商业使用请遵守许可证条款(例如保留版权声明与许可声明)。

如何获取 geopolars 的源码?

可以直接克隆仓库:git clone https://github.com/pola-rs/geopolars.git,默认分支为 main;安装与运行步骤见仓库 README。

geopolars 最近还在维护吗?

仓库最近一次更新为 2 天前,当前有 38 个未关闭 Issue;Star 数为 955,可作为社区活跃度的参考。

关于

GitHub 原始描述(英文)

Geospatial extensions for Polars

描述取自 GitHub 官方 API,保持仓库作者书写的原文。

简要分析

热度分
1071
价值分
586
活跃状态
活跃

语言占比

Python
Rust
Shell

README

GeoPolars

geopolars

Geospatial DataFrames for Rust and Python

Test PyPI Package version Downloads

Update (December 2025): GeoPolars had been blocked on Polars supporting Arrow extension types, but as of November 2025, Polars has now added support for Arrow extension types.

This project will now move forward, subject to time constraints. See issue thread here for more information. If you’d like to contribute, for the time being, feel free to comment on that thread. Soon we’ll have better contributor documentation.

Summary

GeoPolars extends the Polars DataFrame library for use with geospatial data.

  • Uses GeoArrow as the internal memory model.
  • Written in Rust
  • Bindings to Python
  • Multithreading capable

At this point, GeoPolars is a prototype and should not be considered production-ready.

Use from…

Rust

GeoPolars is published to crates.io under the name geopolars.

Documentation is available at docs.rs/geopolars.

Python

An early alpha (v0.1.0-alpha.4) is published to PyPI:

pip install --pre geopolars

The publishing processs includes binary wheels for many platforms, so it should be easy to install, without needing to compile the underlying Rust code from source.

WebAssembly

Polars itself does not yet exist in WebAssembly, though there has been discussion about adding bindings for it. The long-term goal of GeoPolars is to have a WebAssembly API as well.

Comparison with GeoPandas

Imitation is the sincerest form of flattery! GeoPandas — and its underlying libraries of shapely and GEOS — is an incredible production-ready tool.

GeoPolars is nowhere near the functionality or stability of GeoPandas, but competition is good and, due to its pure-Rust core, GeoPolars will be much easier to use in WebAssembly.

Future work

The biggest pieces of future work are:

  • Store geometries in the efficient Arrow-native format, rather than as WKB buffers (as the prototype currently does). This is blocked on Polars, which doesn’t currently support Arrow FixedSizeList data types, but they’ve recently expressed openness to adding minimal FixedSizeList support.

  • Enable georust/geo algorithms to access Arrow data with zero copy. The prototype currently copies WKB geometries into geo structs on each geometry operation, which is expensive.

    This is blocked on adding support to the geo library for geometry access traits, which is a large undertaking. See georust/geo/discussions/838. I’ve started exploration on this

  • Implement GeoArrow extension types for seamless handling of CRS metadata in Rust, rather than in the Python wrapper.

评论

暂无评论