geo-types
Geospatial primitive data types
0.7.20
25M downloads/mo
#1867 most downloaded on crates.io
georust/geo
What this package is like to depend on
Last release 21 days ago
02 Aug 2026
Ships fairly regularly
a new release about every 4 months
Nearly every release is documented
notes for 35 of 35 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
35 releases · first in 2018
3 releases in the last 12 months
see the full history below
Release timeline
35 releases · May 2018 to Aug 2026
2019
2020
2021
2022
2023
2024
2025
2026
Releases
latest 35-
0.7.2002 Aug 2026Release notes
Open source →- Add support for
rstar0.13 via therstar_0_13feature, alongside the existingrstarversions. - Add
rstarsupport forRect. - Derive all error types via
thiserrorinstead of hand-writtenDisplay/Errorimpls. - Add
Geometry::static_name()to get the type of geometry likePointandMultiLineStringas a static string. - Document that the inherent
GeometryCollection::is_emptyis a purely structural check (zero geometries) and does not recurse into element emptiness, unlikegeo::HasDimensions::is_empty.
- Add support for
-
0.7.1914 Apr 2026Release notes
Open source →- POSSIBLY BREAKING:
Triangle::from([a, b, c])now enforces CCW winding (same asTriangle::new). - Add
Triangle::unchecked_winding(v1, v2, v3)for callers that have pre-verified CCW order or don't require a specific winding. - Add
Triangle::v1(),Triangle::v2(),Triangle::v3()getters. - Deprecate direct access to
Triangle's public tuple fields (.0,.1,.2); use the constructors and getters above. - Implement Spade HasPosition for Coord
- Implement Index and Range accessors for LineString, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection
let multi_point = wkt!(MULTIPOINT(0 0,1 1,2 2,3 3)); let point = multi_point[1]; let three_points = multi_point[0..3]; // panics! let no_point = multi_point[4]
- POSSIBLY BREAKING:
-
0.7.1801 Dec 2025Release notes
Open source →- Renamed features
use-rstar,use-rstar-0_8, etc. to simplyrstar,rstar-0_8, etc. (removing theuse-prefix) and deprecated the old spelling. - You can now serialize
rstar::AABB<Point>andrstar::AABB<Coord>when enabling therstarandserdefeatures.
- Renamed features
-
0.7.1725 Jul 2025Release notes
Open source →- Add support to
wkt!geometry creation macro forLINE,RECT, andTRIANGLEgeometries. - Add
emptyconvenience initializer for constructing empty geometries - Fix Clippy warning (surfaced in Rust 1.89) related to lifetime elision
- Add support to
-
0.7.1624 Mar 2025Release notes
Open source →- Add
LineString::rev_linesto iterate segments from end to start - Add more concise Debug output for geometries (like WKT).
NOTE: because geo-types allows some representations which are not supported by standard WKT, not all debug output is valid WKT. Do not attempt to treat debug as a stable format - it's unsuitable for interacting with programmatically. See the
wktcrate for that.- https://github.com/georust/geo/pull/1302
- Rect and Triangle's
linesandcoordsiterators andto_polygonmethod now return ccw-oriented geometry- https://github.com/georust/geo/pull/1308
- Implement approx::UlpsEq for geo-types, allowing a new kind of approximate equality check, based on counting the number of floats between two numbers.
- https://github.com/georust/geo/pull/1312
- Add
-
0.7.1514 Jan 2025Release notes
Open source →- Implement
RTreeObjectforTriangle. - Implement
AsRef<Coord>forPointandCoord.
- Implement
-
0.7.1415 Nov 2024Release notes
Open source →- POSSIBLY BREAKING: Minimum supported version of Rust (MSRV) is now 1.75
- Add rstar compatibility for MultiPolygon
- Add multi-threading support to Multi* geometries.
- Feature-gated (
multithreading), disabled by default, enabled by default whengeo-typesis used bygeo
- Feature-gated (
-
0.7.1324 Feb 2024Release notes
Open source →- POSSIBLY BREAKING: Minimum supported version of Rust (MSRV) is now 1.70
- Add feature for rstar v0.12.0
- Add num_rings and num_interior_rings methods to polygons.
-
0.7.1214 Nov 2023Release notes
Open source →- Add
Polygon::try_exterior_mutandPolygon::try_interiors_mut. https://github.com/georust/geo/pull/1071 - Add
wkt!macro to define geometries at compile time. https://github.com/georust/geo/pull/1063
- Add
-
0.7.1113 Jul 2023 -
0.7.1025 Jun 2023 -
0.7.907 Mar 2023Release notes
Open source →- Return
DoubleEndedIteratorfromLineString::pointsandLineString::points_mut - POSSIBLY BREAKING: Minimum supported version of Rust (MSRV) is now 1.63
- Add
no_stdcompatibility when the new defaultstdfeature is disabled - Support
rstarversion0.10in featureuse-rstar_0_10.
- Return
-
0.7.816 Nov 2022Release notes
Open source →- Rename
CoordinatetoCoord; add deprecatedCoordinatethat is an alias forCoord - Pin
arbitraryversion to 1.1.3 until our MSRV catches up with its latest release - Add
point.x_mut()andpoint.y_mut()methods onPoints - Changed license field to SPDX 2.1 license expression
- Fix typo in deprecated attribute, which will become a compiler error in a future version of rustc.
- Rename
-
0.7.725 Aug 2022Release notes
Open source →- Fixed: using empty
polygon![]macro no longer requires includingline_string!macro
- Fixed: using empty
-
0.7.624 Jun 2022Release notes
Open source →- You may now specify
Geometryrather thanGeometry<f64>since we've added a default trait implementation. You may still explicitly declare the numeric type as f64, or any other implementation ofCoordNum, but this should save you some typing if you're using f64. The same change applies toCoordinatesand all the geometry variants, likePoint,LineString, etc. - the
geometrymodule now re-exports all the inner geometry variants, so you canuse geo_types::geometry::*to concisely includePoint,LineString, etc.
- You may now specify
-
0.7.512 Jun 2022Release notes
Open source →- Add
split_xandsplit_ymethods onRect - Add support for
PolygoninRTree - Deprecate
GeometryCollection::from(single_geom)in favor ofGeometryCollection::from(vec![single_geom])
- Add
-
0.7.406 Apr 2022Release notes
Open source →- BREAKING: Make
Rect::to_linesreturn lines in winding order forRect::to_polygon. - Note: All crates have been migrated to Rust 2021 edition. The MSRV when installing the latest dependencies has increased to 1.56.
- Macros
coord!,point!,line_string!, andpolygon!now support trailing commas such ascoord! { x: 181.2, y: 51.79, } - Internal cleanup: Explicitly declare
use-rstar_0_8anduse-rstar_0_9features to be explicit which rstar version is being used. For backward compatibility, theuse-rstarfeature will still enableuse-rstar_0_8. - Add missing size_hint() method for point and coordinate iterators on LineString
- Add ExactsizeIterator impl for Points iterator on LineString
- Extend
point!macro to support single coordinate expression argumentspoint!(coordinate)(coordinate can be created with thecoord!macro) LineString,MultiPoint,MultiPolygon,Triangle,MultiLineStringnow have a new constructornew(...).GeometryCollectionhas anew_from(...)constructor.GeometryCollection::new()has been deprecated - useGeometryCollection::default()instead. Do not use tuple constructors likefor any of the geo-types. UseMultiPoint(...)MultiPoint::new(...)and similar ones instead.
- BREAKING: Make
-
0.7.321 Feb 2022Release notes
Open source →- DEPRECATION: Deprecate
Point::lng,Point::lat,Point::set_lngandPoint::set_lat - Support
rstarversion0.9in featureuse-rstar_0_9 GeometryandGeometryCollectionnow support serde.- Add
Coordinateiterators to LineString, regularise its iterator methods, and refactor its docs - Add +=, -=, *=, and /= for Point
- Note: The MSRV when installing the latest dependencies has increased to 1.55
- DEPRECATION: Deprecate
-
0.7.219 Apr 2021Release notes
Open source →- Implement
RelativeEqandAbsDiffEqfor fuzzy comparison of remaining Geometry Types - Implement
From<Line>forLineString - Add optional
arbitraryfeature for integration with the arbitrary crate
- Implement
-
0.7.110 Feb 2021Release notes
Open source →- Implement
DefaultonCoordinateandPointstructs (defaults to(x: 0, y: 0)) - Add specific details about conversion failures in the newly public
geo_types::Error
- Implement
-
0.7.013 Jan 2021Release notes
Open source →- BREAKING:
geo_types::CoordinateTypenow extends Debug and has been deprecated in favor ofgeo_types::CoordNumandgeo_types::CoordFloat - BREAKING: Introduce
use-rstarfeature rather thanrstarso thatapproxdependency can be optional - Implement
approx::{RelativeEq, AbsDiffEq}for geo-types when using theapproxfeature geo_types::LineString::num_coordshas been deprecated in favor ofgeo::algorithm::coords_iter::CoordsIter::coords_count
- BREAKING:
-
0.6.224 Nov 2020Release notes
Open source →- Add
into_iter,iteranditer_mutmethods forMultiPolygon,MultiPoint, andMultiLineString Rect::newautomatically determines min/max points. DeprecatesRect::try_newwhich can no longer fail.- Add
MultiLineString::is_closedmethod
- Add
-
0.6.107 Oct 2020Release notes
Open source →- Add documentation on semantics (based on OGC-SFA)
- Add vector-space operations to
CoordinateandPoint
-
0.6.021 Jun 2020Release notes
Open source →- Remove
COORD_PRECISIONwhich was an arbitrary constant of 0.1m - Bump rstar version to 0.8.0
- Add
TriangleandRecttoGeometry - Introduce
Rect::try_newconstructor which does not panic - Add
Rect::centermethod - Derive
Eqfor types when applicable - Implement
From<Triangle> for Polygon
- Remove
-
0.5.022 Mar 2020Release notes
Open source →- Update Geometry enum with iterators and TryFrom impls for primitives
- https://github.com/georust/geo/pull/410
- Make geo-types Rect fields private to force users to use constructor (breaking change)
- Bump rstar dependency to 0.4
- Fix link to
LineStringin docs - Fix typo in Rect docs about min/max positions.
- Implement
Hashfor all types ingeo-types
- Update Geometry enum with iterators and TryFrom impls for primitives
-
0.4.326 May 2019Release notes
Open source →- Introduce
point!,line_string!, andpolygon!macros. - Add
Rectconstructor that enforcesmin.{x,y} < max.{x,y}
- Introduce
-
0.4.205 Apr 2019 -
0.4.122 Feb 2019 -
0.4.017 Feb 2019Release notes
Open source →- Rewrite
Polygonstructure to enforce closedLineStringrings - Implement
Into<Geometry>forLine - Implement
Index<usize>forLineStringto get the coordinate at that position - Bump
rstardependency - Ability to construct
MultiPolygonfromVecof anything that implementsInto<Polygon> - Add
new,is_empty,lenfunctions onGeometryCollection - Tweak
Geometrymethod names slightly - Remove unnecessary references in function signatures
- Rewrite
-
0.3.003 Dec 2018Release notes
Open source → -
0.2.223 Nov 2018 -
0.2.122 Nov 2018 -
0.2.016 Aug 2018Release notes
Open source →- Introduce
Line::{dx, dy, slope, determinant}methods. - Remove unnecessary borrows in function params for
Copytypes. - Introduce
x_ymethod onPointandCoordinate - Migrate
LineandLineStringto be a series ofCoordinates(notPoints). - Introduce Triangle geometry type.
- Rename bounding ‘box’ to ‘rect’; move structure to geo-types.
- Introduce
-
0.1.115 May 2018 -
0.1.003 May 2018