23 stable releases

Uses old Rust 2015

2.0.4 Mar 23, 2022
2.0.2 Mar 22, 2022
2.0.1 Jul 25, 2020
1.1.1 May 3, 2019
1.0.12 Apr 30, 2019

#385 in Algorithms

Download history 434/week @ 2022-11-29 446/week @ 2022-12-06 616/week @ 2022-12-13 205/week @ 2022-12-20 133/week @ 2022-12-27 445/week @ 2023-01-03 785/week @ 2023-01-10 703/week @ 2023-01-17 579/week @ 2023-01-24 714/week @ 2023-01-31 489/week @ 2023-02-07 682/week @ 2023-02-14 701/week @ 2023-02-21 751/week @ 2023-02-28 590/week @ 2023-03-07 824/week @ 2023-03-14

2,954 downloads per month
Used in 6 crates (via geos)

MIT license

1.5MB
19K SLoC

C++ 17K SLoC // 0.2% comments Rust 1.5K SLoC // 0.0% comments C 199 SLoC // 0.3% comments Python 184 SLoC Shell 55 SLoC // 0.4% comments JavaScript 47 SLoC // 0.3% comments Batch 9 SLoC

geos-sys

GEOS C API bindings.

It provides C-interface as is. If you want to use a more Rust-friendly crate, prefer to use the georust/geos crate.

You can also find it on crates.io.

Static build

If you want to link statically to libgeos, then use the static feature. It will build libgeos so you need to have cmake and a C++ compiler.

Add more functions

A little script is available to check what functions aren't available yet. You can run it as follows:

> python3 check_missing/check_missing.py

It simply reads geos C header file and compare it with the geos-sys's src/functions.rs file. Normally, you should never have more functions in the Rust code than the C code (deprecated functions aren't reexported in Rust).


lib.rs:

GEOS C API bindings.

It provides C-interface as is. If you want to use a more Rust-friendly crate, prefer to use the georust/geos crate.

You can also find it on crates.io.

Static build

If you want to link statically to libgeos, then use the static feature. It will build libgeos so you need to have cmake and a C++ compiler.

Dependencies