diff --git a/Cargo.lock b/Cargo.lock index 68fde0a..f32ff26 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -167,18 +167,15 @@ checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "arrow" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b5ec52ba94edeed950e4a41f75d35376df196e8cb04437f7280a5aa49f20f796" +checksum = "3095aaf545942ff5abd46654534f15b03a90fba78299d661e045e5d587222f0d" dependencies = [ "arrow-arith", "arrow-array", "arrow-buffer", "arrow-cast", - "arrow-csv", "arrow-data", - "arrow-ipc", - "arrow-json", "arrow-ord", "arrow-row", "arrow-schema", @@ -188,9 +185,9 @@ dependencies = [ [[package]] name = "arrow-arith" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc766fdacaf804cb10c7c70580254fcdb5d55cdfda2bc57b02baf5223a3af9e" +checksum = "00752064ff47cee746e816ddb8450520c3a52cbad1e256f6fa861a35f86c45e7" dependencies = [ "arrow-array", "arrow-buffer", @@ -202,9 +199,9 @@ dependencies = [ [[package]] name = "arrow-array" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12fcdb3f1d03f69d3ec26ac67645a8fe3f878d77b5ebb0b15d64a116c212985" +checksum = "cebfe926794fbc1f49ddd0cdaf898956ca9f6e79541efce62dabccfd81380472" dependencies = [ "ahash 0.8.11", "arrow-buffer", @@ -219,9 +216,9 @@ dependencies = [ [[package]] name = "arrow-buffer" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "263f4801ff1839ef53ebd06f99a56cecd1dbaf314ec893d93168e2e860e0291c" +checksum = "0303c7ec4cf1a2c60310fc4d6bbc3350cd051a17bf9e9c0a8e47b4db79277824" dependencies = [ "bytes", "half", @@ -230,9 +227,9 @@ dependencies = [ [[package]] name = "arrow-cast" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ede6175fbc039dfc946a61c1b6d42fd682fcecf5ab5d148fbe7667705798cac9" +checksum = "335f769c5a218ea823d3760a743feba1ef7857cba114c01399a891c2fff34285" dependencies = [ "arrow-array", "arrow-buffer", @@ -244,32 +241,16 @@ dependencies = [ "chrono", "comfy-table", "half", - "lexical-core 1.0.5", + "lexical-core", "num", "ryu", ] -[[package]] -name = "arrow-csv" -version = "54.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1644877d8bc9a0ef022d9153dc29375c2bda244c39aec05a91d0e87ccf77995f" -dependencies = [ - "arrow-array", - "arrow-cast", - "arrow-schema", - "chrono", - "csv", - "csv-core", - "lazy_static", - "regex", -] - [[package]] name = "arrow-data" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61cfdd7d99b4ff618f167e548b2411e5dd2c98c0ddebedd7df433d34c20a4429" +checksum = "e8affacf3351a24039ea24adab06f316ded523b6f8c3dbe28fbac5f18743451b" dependencies = [ "arrow-buffer", "arrow-schema", @@ -279,9 +260,9 @@ dependencies = [ [[package]] name = "arrow-ipc" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62ff528658b521e33905334723b795ee56b393dbe9cf76c8b1f64b648c65a60c" +checksum = "69880a9e6934d9cba2b8630dd08a3463a91db8693b16b499d54026b6137af284" dependencies = [ "arrow-array", "arrow-buffer", @@ -292,9 +273,9 @@ dependencies = [ [[package]] name = "arrow-json" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ee5b4ca98a7fb2efb9ab3309a5d1c88b5116997ff93f3147efdc1062a6158e9" +checksum = "d8dafd17a05449e31e0114d740530e0ada7379d7cb9c338fd65b09a8130960b0" dependencies = [ "arrow-array", "arrow-buffer", @@ -303,8 +284,8 @@ dependencies = [ "arrow-schema", "chrono", "half", - "indexmap", - "lexical-core 1.0.5", + "indexmap 2.9.0", + "lexical-core", "memchr", "num", "serde", @@ -314,9 +295,9 @@ dependencies = [ [[package]] name = "arrow-ord" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0a3334a743bd2a1479dbc635540617a3923b4b2f6870f37357339e6b5363c21" +checksum = "895644523af4e17502d42c3cb6b27cb820f0cb77954c22d75c23a85247c849e1" dependencies = [ "arrow-array", "arrow-buffer", @@ -327,9 +308,9 @@ dependencies = [ [[package]] name = "arrow-row" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d1d7a7291d2c5107e92140f75257a99343956871f3d3ab33a7b41532f79cb68" +checksum = "9be8a2a4e5e7d9c822b2b8095ecd77010576d824f654d347817640acfc97d229" dependencies = [ "arrow-array", "arrow-buffer", @@ -340,18 +321,18 @@ dependencies = [ [[package]] name = "arrow-schema" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39cfaf5e440be44db5413b75b72c2a87c1f8f0627117d110264048f2969b99e9" +checksum = "7450c76ab7c5a6805be3440dc2e2096010da58f7cab301fdc996a4ee3ee74e49" dependencies = [ - "bitflags 2.9.0", + "bitflags", ] [[package]] name = "arrow-select" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69efcd706420e52cd44f5c4358d279801993846d1c2a8e52111853d61d55a619" +checksum = "aa5f5a93c75f46ef48e4001535e7b6c922eeb0aa20b73cf58d09e13d057490d8" dependencies = [ "ahash 0.8.11", "arrow-array", @@ -363,9 +344,9 @@ dependencies = [ [[package]] name = "arrow-string" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a21546b337ab304a32cfc0770f671db7411787586b45b78b4593ae78e64e2b03" +checksum = "6e7005d858d84b56428ba2a98a107fe88c0132c61793cf6b8232a1f9bfc0452b" dependencies = [ "arrow-array", "arrow-buffer", @@ -550,12 +531,6 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5e764a1d40d510daf35e07be9eb06e75770908c27d411ee6c92109c9840eaaf7" -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - [[package]] name = "bitflags" version = "2.9.0" @@ -667,12 +642,6 @@ version = "0.6.8" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5ce89b21cab1437276d2650d57e971f9d548a2d9037cc231abdc0562b97498ce" -[[package]] -name = "bytemuck" -version = "1.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6b1fc10dbac614ebc03540c9dbd60e83887fda27794998c6528f1782047d540" - [[package]] name = "byteorder" version = "1.5.0" @@ -872,7 +841,8 @@ dependencies = [ [[package]] name = "cql2" version = "0.3.7-beta.0" -source = "git+https://github.com/gadomski/cql2-rs?branch=geo-v0.29#cadc45851c9c5bd2a13a344863ac539bb0f767b5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d741b16ae47ecd1d7fccf6f34e24c7a23f957d100e21e7f17ba8b17bbd4bb68a" dependencies = [ "geo", "geo-types", @@ -891,7 +861,7 @@ dependencies = [ "serde_json", "thiserror 2.0.12", "unaccent", - "wkt 0.12.0", + "wkt 0.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ] [[package]] @@ -945,34 +915,38 @@ dependencies = [ ] [[package]] -name = "csv" -version = "1.3.1" +name = "darling" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acdc4883a9c96732e4733212c01447ebd805833b7275a73ca3ee080fd77afdaf" +checksum = "fc7f46116c46ff9ab3eb1597a45688b6715c6e628b5c133e288e709a29bcb4ee" dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde", + "darling_core", + "darling_macro", ] [[package]] -name = "csv-core" -version = "0.1.12" +name = "darling_core" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d02f3b0da4c6504f86e9cd789d8dbafab48c2321be74e9987593de5a894d93d" +checksum = "0d00b9596d185e565c2207a0b01f8bd1a135483d02d9b7b0a54b11da8d53412e" dependencies = [ - "memchr", + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 2.0.100", ] [[package]] -name = "dbase" -version = "0.5.0" +name = "darling_macro" +version = "0.20.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "847c0b5d4f3a3d80f9c64db3cb60eb00304b3ea1262c7299dd6274a83e714d24" +checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ - "byteorder", - "time", + "darling_core", + "quote", + "syn 2.0.100", ] [[package]] @@ -1005,6 +979,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9c9e6a11ca8224451684bc0d7d5a7adbf8f2fd6887261a1cfc3c0432f9d4068e" dependencies = [ "powerfmt", + "serde", ] [[package]] @@ -1032,8 +1007,7 @@ dependencies = [ [[package]] name = "duckdb" version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49ac283b6621e3becf8014d1efa655522794075834c72f744573debef9c9f6c8" +source = "git+https://github.com/gadomski/duckdb-rs/?branch=arrow-v55#2103b2a2107db247482bcf54fffcba790f682134" dependencies = [ "arrow", "cast", @@ -1073,18 +1047,6 @@ dependencies = [ "serde", ] -[[package]] -name = "enum-as-inner" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e6a265c649f3f5979b601d26f1d05ada116434c87741c9493cb56218f76cbc" -dependencies = [ - "heck 0.5.0", - "proc-macro2", - "quote", - "syn 2.0.100", -] - [[package]] name = "equivalent" version = "1.0.2" @@ -1150,11 +1112,11 @@ checksum = "b7ac824320a75a52197e8f2d787f6a38b6718bb6897a35142d749af3c0e8f4fe" [[package]] name = "flatbuffers" -version = "24.12.23" +version = "25.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f1baf0dbf96932ec9a3038d57900329c015b0bfb7b63d904f3bc27e2b02a096" +checksum = "1045398c1bfd89168b5fd3f1fc11f6e70b34f6f66300c87d44d3de849463abf1" dependencies = [ - "bitflags 1.3.2", + "bitflags", "rustc_version", ] @@ -1165,6 +1127,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ced92e76e966ca2fd84c8f7aa01a4aea65b0eb6648d72f7c8f3e2764a67fece" dependencies = [ "crc32fast", + "libz-rs-sys", "miniz_oxide", ] @@ -1323,9 +1286,9 @@ dependencies = [ [[package]] name = "geo" -version = "0.29.3" +version = "0.30.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34f0e6e028c581e82e6822a68869514e94c25e7f8ea669a2d8595bdf7461ccc5" +checksum = "4416397671d8997e9a3e7ad99714f4f00a22e9eaa9b966a5985d2194fc9e02e1" dependencies = [ "earcutr", "float_next_after", @@ -1339,20 +1302,6 @@ dependencies = [ "spade", ] -[[package]] -name = "geo-index" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e6b2a121e60180a118037426b1e93d7f5904ebd95cf6e841a575195a65a31ce" -dependencies = [ - "bytemuck", - "float_next_after", - "geo-traits", - "num-traits", - "thiserror 1.0.69", - "tinyvec", -] - [[package]] name = "geo-traits" version = "0.2.0" @@ -1376,38 +1325,51 @@ dependencies = [ ] [[package]] -name = "geoarrow" -version = "0.4.0-beta.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cd7613eb9752ff08ea3cdf2dd5b0ff2b2c516318334f8fc4f123829b5bd948f" +name = "geoarrow-array" +version = "0.1.0-dev" +source = "git+https://github.com/geoarrow/geoarrow-rs/?rev=17bf33e4cf78b060afa08ca9560dc4efd73c2c76#17bf33e4cf78b060afa08ca9560dc4efd73c2c76" dependencies = [ - "arrow", "arrow-array", "arrow-buffer", - "arrow-cast", - "arrow-data", - "arrow-ipc", "arrow-schema", - "chrono", - "dbase", - "enum-as-inner", - "geo", - "geo-index", "geo-traits", - "geozero", - "half", - "indexmap", - "lexical-core 0.8.5", + "geoarrow-schema", "num-traits", - "parquet", - "phf", - "rstar", - "serde", "serde_json", - "shapefile", "thiserror 1.0.69", "wkb", - "wkt 0.12.0", + "wkt 0.12.0 (git+https://github.com/georust/wkt?rev=270ffe0eaf5ba5255c364dbade39c451562a9e9b)", +] + +[[package]] +name = "geoarrow-geoparquet" +version = "0.1.0-dev" +source = "git+https://github.com/geoarrow/geoarrow-rs/?rev=17bf33e4cf78b060afa08ca9560dc4efd73c2c76#17bf33e4cf78b060afa08ca9560dc4efd73c2c76" +dependencies = [ + "arrow-arith", + "arrow-array", + "arrow-buffer", + "arrow-ord", + "arrow-schema", + "geo-traits", + "geo-types", + "geoarrow-array", + "geoarrow-schema", + "parquet", + "serde", + "serde_json", + "serde_with", +] + +[[package]] +name = "geoarrow-schema" +version = "0.1.0-dev" +source = "git+https://github.com/geoarrow/geoarrow-rs/?rev=17bf33e4cf78b060afa08ca9560dc4efd73c2c76#17bf33e4cf78b060afa08ca9560dc4efd73c2c76" +dependencies = [ + "arrow-schema", + "geo-traits", + "serde", + "serde_json", ] [[package]] @@ -1441,7 +1403,6 @@ dependencies = [ "geo-types", "geojson", "log", - "scroll", "serde_json", "thiserror 1.0.69", "wkt 0.11.1", @@ -1492,7 +1453,7 @@ dependencies = [ "futures-core", "futures-sink", "http", - "indexmap", + "indexmap 2.9.0", "slab", "tokio", "tokio-util", @@ -1579,6 +1540,12 @@ version = "0.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2304e00983f87ffb38b55b444b5e3b60a884b5d30c0fca7d82fe33449bbe55ea" +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + [[package]] name = "hmac" version = "0.12.1" @@ -1702,9 +1669,9 @@ dependencies = [ [[package]] name = "i_float" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "775f9961a8d2f879725da8aff789bb20a3ddf297473e0c90af75e69313919490" +checksum = "85df3a416829bb955fdc2416c7b73680c8dcea8d731f2c7aa23e1042fe1b8343" dependencies = [ "serde", ] @@ -1717,9 +1684,9 @@ checksum = "347c253b4748a1a28baf94c9ce133b6b166f08573157e05afe718812bc599fcd" [[package]] name = "i_overlay" -version = "1.9.4" +version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01882ce5ed786bf6e8f5167f171a4026cd129ce17d9ff5cbf1e6749b98628ece" +checksum = "0542dfef184afdd42174a03dcc0625b6147fb73e1b974b1a08a2a42ac35cee49" dependencies = [ "i_float", "i_key_sort", @@ -1730,9 +1697,9 @@ dependencies = [ [[package]] name = "i_shape" -version = "1.6.0" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27dbe9e5238d6b9c694c08415bf00fb370b089949bd818ab01f41f8927b8774c" +checksum = "0a38f5a42678726718ff924f6d4a0e79b129776aeed298f71de4ceedbd091bce" dependencies = [ "i_float", "serde", @@ -1886,6 +1853,12 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "1.0.3" @@ -1907,6 +1880,17 @@ dependencies = [ "icu_properties", ] +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde", +] + [[package]] name = "indexmap" version = "2.9.0" @@ -1968,9 +1952,9 @@ checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "jiff" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ad87c89110f55e4cd4dc2893a9790820206729eaf221555f742d540b0724a0" +checksum = "5a064218214dc6a10fbae5ec5fa888d80c45d611aba169222fc272072bf7aef6" dependencies = [ "jiff-static", "jiff-tzdb-platform", @@ -1983,9 +1967,9 @@ dependencies = [ [[package]] name = "jiff-static" -version = "0.2.8" +version = "0.2.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d076d5b64a7e2fe6f0743f02c43ca4a6725c0f904203bfe276a5b3e793103605" +checksum = "199b7932d97e325aff3a7030e141eafe7f2c6268e1d1b24859b753a627f45254" dependencies = [ "proc-macro2", "quote", @@ -2096,41 +2080,17 @@ version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" -[[package]] -name = "lexical-core" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cde5de06e8d4c2faabc400238f9ae1c74d5412d03a7bd067645ccbc47070e46" -dependencies = [ - "lexical-parse-float 0.8.5", - "lexical-parse-integer 0.8.6", - "lexical-util 0.8.5", - "lexical-write-float 0.8.5", - "lexical-write-integer 0.8.5", -] - [[package]] name = "lexical-core" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b765c31809609075565a70b4b71402281283aeda7ecaf4818ac14a7b2ade8958" dependencies = [ - "lexical-parse-float 1.0.5", - "lexical-parse-integer 1.0.5", - "lexical-util 1.0.6", - "lexical-write-float 1.0.5", - "lexical-write-integer 1.0.5", -] - -[[package]] -name = "lexical-parse-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "683b3a5ebd0130b8fb52ba0bdc718cc56815b6a097e28ae5a6997d0ad17dc05f" -dependencies = [ - "lexical-parse-integer 0.8.6", - "lexical-util 0.8.5", - "static_assertions", + "lexical-parse-float", + "lexical-parse-integer", + "lexical-util", + "lexical-write-float", + "lexical-write-integer", ] [[package]] @@ -2139,18 +2099,8 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "de6f9cb01fb0b08060209a057c048fcbab8717b4c1ecd2eac66ebfe39a65b0f2" dependencies = [ - "lexical-parse-integer 1.0.5", - "lexical-util 1.0.6", - "static_assertions", -] - -[[package]] -name = "lexical-parse-integer" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d0994485ed0c312f6d965766754ea177d07f9c00c9b82a5ee62ed5b47945ee9" -dependencies = [ - "lexical-util 0.8.5", + "lexical-parse-integer", + "lexical-util", "static_assertions", ] @@ -2160,16 +2110,7 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "72207aae22fc0a121ba7b6d479e42cbfea549af1479c3f3a4f12c70dd66df12e" dependencies = [ - "lexical-util 1.0.6", - "static_assertions", -] - -[[package]] -name = "lexical-util" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5255b9ff16ff898710eb9eb63cb39248ea8a5bb036bea8085b1a767ff6c4e3fc" -dependencies = [ + "lexical-util", "static_assertions", ] @@ -2182,35 +2123,14 @@ dependencies = [ "static_assertions", ] -[[package]] -name = "lexical-write-float" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accabaa1c4581f05a3923d1b4cfd124c329352288b7b9da09e766b0668116862" -dependencies = [ - "lexical-util 0.8.5", - "lexical-write-integer 0.8.5", - "static_assertions", -] - [[package]] name = "lexical-write-float" version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c5afc668a27f460fb45a81a757b6bf2f43c2d7e30cb5a2dcd3abf294c78d62bd" dependencies = [ - "lexical-util 1.0.6", - "lexical-write-integer 1.0.5", - "static_assertions", -] - -[[package]] -name = "lexical-write-integer" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1b6f3d1f4422866b68192d62f77bc5c700bee84f3069f2469d7bc8c77852446" -dependencies = [ - "lexical-util 0.8.5", + "lexical-util", + "lexical-write-integer", "static_assertions", ] @@ -2220,7 +2140,7 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "629ddff1a914a836fb245616a7888b62903aae58fa771e1d83943035efa0f978" dependencies = [ - "lexical-util 1.0.6", + "lexical-util", "static_assertions", ] @@ -2233,8 +2153,7 @@ checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libduckdb-sys" version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cac9d03484c43fefac8b2066a253c9b0b3b0cd02cbe02a9ea2312f7e382618" +source = "git+https://github.com/gadomski/duckdb-rs/?branch=arrow-v55#2103b2a2107db247482bcf54fffcba790f682134" dependencies = [ "autocfg", "cc", @@ -2258,11 +2177,20 @@ version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0ff37bd590ca25063e35af745c343cb7a0271906fb7b37e4813e8f79f00268d" dependencies = [ - "bitflags 2.9.0", + "bitflags", "libc", "redox_syscall", ] +[[package]] +name = "libz-rs-sys" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6489ca9bd760fe9642d7644e827b0c9add07df89857b0416ee15c1cc1a3b8c5a" +dependencies = [ + "zlib-rs", +] + [[package]] name = "like" version = "0.3.1" @@ -2303,7 +2231,7 @@ version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "75761162ae2b0e580d7e7c390558127e5f01b4194debd6221fd8c207fc80e3f5" dependencies = [ - "twox-hash", + "twox-hash 1.6.3", ] [[package]] @@ -2634,9 +2562,9 @@ dependencies = [ [[package]] name = "parquet" -version = "54.3.1" +version = "55.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfb15796ac6f56b429fd99e33ba133783ad75b27c36b4b5ce06f1f82cc97754e" +checksum = "cd31a8290ac5b19f09ad77ee7a1e6a541f1be7674ad410547d5f1eef6eef4a9c" dependencies = [ "ahash 0.8.11", "arrow-array", @@ -2660,7 +2588,7 @@ dependencies = [ "seq-macro", "snap", "thrift", - "twox-hash", + "twox-hash 2.1.0", "zstd", ] @@ -2742,7 +2670,7 @@ dependencies = [ [[package]] name = "pgstac" version = "0.3.0" -source = "git+https://github.com/stac-utils/rustac?branch=main#4d6a60a3df1386922285191aba95a76ec704a8b4" +source = "git+https://github.com/stac-utils/rustac?branch=main#6c284a1999a3fdbadd5f311a9d2d450249b09758" dependencies = [ "serde", "serde_json", @@ -2923,14 +2851,14 @@ dependencies = [ [[package]] name = "pyo3" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17da310086b068fbdcefbba30aeb3721d5bb9af8db4987d6735b2183ca567229" +checksum = "e5203598f366b11a02b13aa20cab591229ff0a89fd121a308a5df751d5fc9219" dependencies = [ "cfg-if", "chrono", "chrono-tz", - "indexmap", + "indexmap 2.9.0", "indoc", "libc", "memoffset", @@ -2944,17 +2872,18 @@ dependencies = [ [[package]] name = "pyo3-arrow" -version = "0.8.0" +version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7e4feb7c63063b5430a07c2c4406c12a24025f9b52791a77c6828cd4c2eb01" +checksum = "5b01260f3000b917a5514025b46abc264d10b2e603d7563b3f287eae176206b9" dependencies = [ - "arrow", "arrow-array", "arrow-buffer", + "arrow-cast", + "arrow-data", "arrow-schema", - "chrono", + "arrow-select", "half", - "indexmap", + "indexmap 2.9.0", "numpy", "pyo3", "thiserror 1.0.69", @@ -2975,9 +2904,9 @@ dependencies = [ [[package]] name = "pyo3-build-config" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e27165889bd793000a098bb966adc4300c312497ea25cf7a690a9f0ac5aa5fc1" +checksum = "99636d423fa2ca130fa5acde3059308006d46f98caac629418e53f7ebb1e9999" dependencies = [ "once_cell", "target-lexicon", @@ -2985,9 +2914,9 @@ dependencies = [ [[package]] name = "pyo3-ffi" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05280526e1dbf6b420062f3ef228b78c0c54ba94e157f5cb724a609d0f2faabc" +checksum = "78f9cf92ba9c409279bc3305b5409d90db2d2c22392d443a87df3a1adad59e33" dependencies = [ "libc", "pyo3-build-config", @@ -3006,9 +2935,9 @@ dependencies = [ [[package]] name = "pyo3-macros" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c3ce5686aa4d3f63359a5100c62a127c9f15e8398e5fdeb5deef1fed5cd5f44" +checksum = "0b999cb1a6ce21f9a6b147dcf1be9ffedf02e0043aec74dc390f3007047cecd9" dependencies = [ "proc-macro2", "pyo3-macros-backend", @@ -3018,9 +2947,9 @@ dependencies = [ [[package]] name = "pyo3-macros-backend" -version = "0.24.1" +version = "0.24.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4cf6faa0cbfb0ed08e89beb8103ae9724eb4750e3a78084ba4017cbe94f3855" +checksum = "822ece1c7e1012745607d5cf0bcb2874769f0f7cb34c4cde03b9358eb9ef911a" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -3215,7 +3144,7 @@ version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2f103c6d277498fbceb16e84d317e2a400f160f46904d5f5410848c829511a3" dependencies = [ - "bitflags 2.9.0", + "bitflags", ] [[package]] @@ -3446,7 +3375,7 @@ dependencies = [ [[package]] name = "rustac" version = "0.5.3" -source = "git+https://github.com/stac-utils/rustac?branch=main#4d6a60a3df1386922285191aba95a76ec704a8b4" +source = "git+https://github.com/stac-utils/rustac?branch=main#6c284a1999a3fdbadd5f311a9d2d450249b09758" dependencies = [ "anyhow", "axum", @@ -3462,19 +3391,19 @@ dependencies = [ ] [[package]] -name = "rustac" +name = "rustac-py" version = "0.6.0" dependencies = [ "cargo-lock", "clap", - "geoarrow", + "geoarrow-array", "geojson", "pyo3", "pyo3-arrow", "pyo3-async-runtimes", "pyo3-log", "pythonize", - "rustac 0.5.3", + "rustac", "serde", "serde_json", "stac", @@ -3512,7 +3441,7 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d97817398dd4bb2e6da002002db259209759911da105da92bec29ccb12cf58bf" dependencies = [ - "bitflags 2.9.0", + "bitflags", "errno", "libc", "linux-raw-sys", @@ -3610,12 +3539,6 @@ version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" -[[package]] -name = "scroll" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04c565b551bafbef4157586fa379538366e4385d42082f255bfd96e4fe8519da" - [[package]] name = "seahash" version = "4.1.0" @@ -3628,7 +3551,7 @@ version = "3.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "271720403f46ca04f7ba6f55d438f8bd878d6b8ca0a1046e8228c4145bcbb316" dependencies = [ - "bitflags 2.9.0", + "bitflags", "core-foundation", "core-foundation-sys", "libc", @@ -3686,7 +3609,7 @@ version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ - "indexmap", + "indexmap 2.9.0", "itoa", "memchr", "ryu", @@ -3724,6 +3647,36 @@ dependencies = [ "serde", ] +[[package]] +name = "serde_with" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d6b6f7f2fcb69f747921f79f3926bd1e203fce4fef62c268dd3abfb6d86029aa" +dependencies = [ + "base64", + "chrono", + "hex", + "indexmap 1.9.3", + "indexmap 2.9.0", + "serde", + "serde_derive", + "serde_json", + "serde_with_macros", + "time", +] + +[[package]] +name = "serde_with_macros" +version = "3.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d00caa5193a3c8362ac2b73be6b9e768aa5a4b2f721d8f4b339600c3cb51f8e" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 2.0.100", +] + [[package]] name = "sha2" version = "0.10.8" @@ -3735,16 +3688,6 @@ dependencies = [ "digest", ] -[[package]] -name = "shapefile" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79d5472e932503059d02779ad2c1b96258980940c6923e49f427fbe80eb3053c" -dependencies = [ - "byteorder", - "dbase", -] - [[package]] name = "sharded-slab" version = "0.1.7" @@ -3834,17 +3777,23 @@ checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" [[package]] name = "stac" version = "0.12.0" -source = "git+https://github.com/stac-utils/rustac?branch=main#4d6a60a3df1386922285191aba95a76ec704a8b4" +source = "git+https://github.com/stac-utils/rustac?branch=main#6c284a1999a3fdbadd5f311a9d2d450249b09758" dependencies = [ - "arrow", + "arrow-array", + "arrow-cast", + "arrow-json", + "arrow-schema", "bytes", "chrono", "fluent-uri", "geo", + "geo-traits", "geo-types", - "geoarrow", + "geoarrow-array", + "geoarrow-geoparquet", + "geoarrow-schema", "geojson", - "indexmap", + "indexmap 2.9.0", "jsonschema 0.30.0", "log", "mime", @@ -3863,7 +3812,7 @@ dependencies = [ [[package]] name = "stac-api" version = "0.7.1" -source = "git+https://github.com/stac-utils/rustac?branch=main#4d6a60a3df1386922285191aba95a76ec704a8b4" +source = "git+https://github.com/stac-utils/rustac?branch=main#6c284a1999a3fdbadd5f311a9d2d450249b09758" dependencies = [ "async-stream", "chrono", @@ -3872,7 +3821,7 @@ dependencies = [ "geo", "geojson", "http", - "indexmap", + "indexmap 2.9.0", "reqwest", "serde", "serde_json", @@ -3888,7 +3837,7 @@ dependencies = [ [[package]] name = "stac-derive" version = "0.2.0" -source = "git+https://github.com/stac-utils/rustac?branch=main#4d6a60a3df1386922285191aba95a76ec704a8b4" +source = "git+https://github.com/stac-utils/rustac?branch=main#6c284a1999a3fdbadd5f311a9d2d450249b09758" dependencies = [ "quote", "syn 2.0.100", @@ -3897,14 +3846,14 @@ dependencies = [ [[package]] name = "stac-duckdb" version = "0.1.1" -source = "git+https://github.com/stac-utils/rustac?branch=main#4d6a60a3df1386922285191aba95a76ec704a8b4" +source = "git+https://github.com/stac-utils/rustac?branch=main#6c284a1999a3fdbadd5f311a9d2d450249b09758" dependencies = [ - "arrow", + "arrow-array", "chrono", "cql2", "duckdb", "geo", - "geoarrow", + "geoarrow-array", "geojson", "log", "serde_json", @@ -3916,7 +3865,7 @@ dependencies = [ [[package]] name = "stac-server" version = "0.3.4" -source = "git+https://github.com/stac-utils/rustac?branch=main#4d6a60a3df1386922285191aba95a76ec704a8b4" +source = "git+https://github.com/stac-utils/rustac?branch=main#6c284a1999a3fdbadd5f311a9d2d450249b09758" dependencies = [ "axum", "bb8", @@ -4124,10 +4073,12 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a7619e19bc266e0f9c5e6686659d394bc57973859340060a69221e57dbc0c40" dependencies = [ "deranged", + "itoa", "num-conv", "powerfmt", "serde", "time-core", + "time-macros", ] [[package]] @@ -4136,6 +4087,16 @@ version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c9e9a38711f559d9e3ce1cdb06dd7c5b8ea546bc90052da6d06bb76da74bb07c" +[[package]] +name = "time-macros" +version = "0.2.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3526739392ec93fd8b359c8e98514cb3e8e021beb4e5f597b00a0221f8ed8a49" +dependencies = [ + "num-conv", + "time-core", +] + [[package]] name = "tiny-keccak" version = "2.0.2" @@ -4310,7 +4271,7 @@ version = "0.22.24" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17b4795ff5edd201c7cd6dca065ae59972ce77d1b80fa0a84d94950ece7d1474" dependencies = [ - "indexmap", + "indexmap 2.9.0", "serde", "serde_spanned", "toml_datetime", @@ -4339,7 +4300,7 @@ version = "0.6.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "403fa3b783d4b626a8ad51d766ab03cb6d2dbfc46b1c5d4448395e6628dc9697" dependencies = [ - "bitflags 2.9.0", + "bitflags", "bytes", "http", "http-body", @@ -4439,6 +4400,12 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "twox-hash" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7b17f197b3050ba473acf9181f7b1d3b66d1cf7356c6cc57886662276e65908" + [[package]] name = "typenum" version = "1.18.0" @@ -5017,14 +4984,13 @@ version = "0.39.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6f42320e61fe2cfd34354ecb597f86f413484a798ba44a8ca1165c58d42da6c1" dependencies = [ - "bitflags 2.9.0", + "bitflags", ] [[package]] name = "wkb" version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1e2c084338d6407d24c5a43208aca32128a5d62107eab5ca18314395c4aa3f0" +source = "git+https://github.com/georust/wkb?rev=5a2027995997017bcd531e6be7e5cf126db1d4c1#5a2027995997017bcd531e6be7e5cf126db1d4c1" dependencies = [ "byteorder", "geo-traits", @@ -5057,6 +5023,18 @@ dependencies = [ "thiserror 1.0.69", ] +[[package]] +name = "wkt" +version = "0.12.0" +source = "git+https://github.com/georust/wkt?rev=270ffe0eaf5ba5255c364dbade39c451562a9e9b#270ffe0eaf5ba5255c364dbade39c451562a9e9b" +dependencies = [ + "geo-traits", + "geo-types", + "log", + "num-traits", + "thiserror 1.0.69", +] + [[package]] name = "write16" version = "1.0.0" @@ -5227,6 +5205,12 @@ dependencies = [ "syn 2.0.100", ] +[[package]] +name = "zlib-rs" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "868b928d7949e09af2f6086dfc1e01936064cc7a819253bce650d4e2a2d63ba8" + [[package]] name = "zstd" version = "0.13.3" diff --git a/Cargo.toml b/Cargo.toml index 12ec2e0..76c0008 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "rustac" +name = "rustac-py" version = "0.6.0" edition = "2021" publish = false @@ -13,14 +13,14 @@ duckdb-bundled = ["stac-duckdb/bundled"] [dependencies] clap = "4.5.31" +geoarrow-array = { git = "https://github.com/geoarrow/geoarrow-rs/", rev = "17bf33e4cf78b060afa08ca9560dc4efd73c2c76" } geojson = "0.24.1" -geoarrow = "0.4.0-beta.3" pyo3 = { version = "0.24.1", features = ["extension-module"] } pyo3-async-runtimes = { version = "0.24.0", features = [ "tokio", "tokio-runtime", ] } -pyo3-arrow = "0.8.0" +pyo3-arrow = "0.9.0" pythonize = "0.24.0" serde = "1.0.217" serde_json = { version = "1.0.138", features = ["preserve_order"] } @@ -45,5 +45,4 @@ tracing = "0.1.41" cargo-lock = "10" [patch.crates-io] -# TODO unpatch cql2 when we upgrade geoarrow to use geo v0.30 -cql2 = { git = "https://github.com/gadomski/cql2-rs", branch = "geo-v0.29" } +duckdb = { git = "https://github.com/gadomski/duckdb-rs/", branch = "arrow-v55" } diff --git a/src/arrow.rs b/src/arrow.rs index dc8c650..2b70357 100644 --- a/src/arrow.rs +++ b/src/arrow.rs @@ -1,8 +1,8 @@ use crate::{Error, Json, Result}; -use geoarrow::table::Table; use pyo3::{prelude::*, IntoPyObjectExt}; use pyo3_arrow::PyTable; use serde_json::Value; +use stac::geoarrow::Table; use stac::{Item, ItemCollection}; #[pyfunction] @@ -18,8 +18,9 @@ pub fn from_arrow(py: Python<'_>, table: PyTable) -> PyResult> { if !record_batches.is_empty() { schema = record_batches[0].schema(); } - let table = Table::try_new(record_batches, schema).map_err(Error::from)?; - let item_collection = stac::geoarrow::from_table(table).map_err(Error::from)?; + let table = Table::new(record_batches, schema); + let item_collection = + stac::geoarrow::from_record_batch_reader(table.into_reader()).map_err(Error::from)?; let item_collection = Json(item_collection).into_pyobject(py)?; Ok(item_collection) } @@ -37,7 +38,7 @@ pub fn to_arrow(py: Python<'_>, items: Bound) -> PyResult { serde_json::from_value(value).map_err(Error::from)? }; // TODO we might want to just allow use to go WKB right when we got to table? - let (record_batches, mut schema) = stac::geoarrow::to_table(item_collection) + let (record_batches, mut schema) = Table::from_item_collection(item_collection) .map_err(Error::from)? .into_inner(); let record_batches = record_batches diff --git a/src/error.rs b/src/error.rs index 2fbe536..27273e7 100644 --- a/src/error.rs +++ b/src/error.rs @@ -13,7 +13,7 @@ pub enum Error { Geojson(#[from] geojson::Error), #[error(transparent)] - Geoarrow(#[from] geoarrow::error::GeoArrowError), + Geoarrow(#[from] geoarrow_array::error::GeoArrowError), #[error(transparent)] Io(#[from] std::io::Error),