Skip to content

Commit 92c841a

Browse files
authored
feat: parquet stream to object store (#182)
E.g.: ```python store = MemoryStore() async with rustac.geoparquet_writer([item], "out.parquet", store=store) as w: await w.write([item]) item_collection = await rustac.read("out.parquet", store=store) assert len(item_collection["features"]) == 2 ```
1 parent 3a4b945 commit 92c841a

File tree

14 files changed

+247
-118
lines changed

14 files changed

+247
-118
lines changed

.cargo/config.toml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
[patch.crates-io]
2+
stac = { git = "https://github.com/stac-utils/rustac" }
3+
stac-io = { git = "https://github.com/stac-utils/rustac" }
4+
stac-api = { git = "https://github.com/stac-utils/rustac" }
5+
stac-duckdb = { git = "https://github.com/stac-utils/rustac" }
6+
rustac = { git = "https://github.com/stac-utils/rustac" }

CONTRIBUTING.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@ We appreciates you.
99
It's pretty common that a bug in **rustac-py** is actually a bug in **rustac**.
1010
Knowing which repository to work in can be a little tricky, so don't hesitate to reach out and ask.
1111

12+
Because the two repos are tightly coupled, we use [a configuration file](./cargo/config.toml) to use the current **main** branch of **rustac** for development.
13+
If this ever is a problem, simply comment out the `[patch]` section in the configuration file.
14+
1215
## Python environment
1316

1417
It can be a little tricky to ensure that your Python environment is always up-to-date while developing a Rust+Python project.

Cargo.lock

Lines changed: 104 additions & 33 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ futures-core = "0.3.31"
1919
futures-util = "0.3.31"
2020
geoarrow-schema = "0.4.0"
2121
geojson = "0.24.1"
22+
object_store = { version = "0.12.4", features = ["gcp", "aws", "azure", "http"] }
2223
openssl = { version = "0.10", features = ["vendored"], optional = true }
2324
parquet = "56.0.0"
2425
pyo3 = { version = "0.26.0", features = ["extension-module"] }
@@ -34,9 +35,9 @@ rustac = { version = "0.1.1", features = ["pgstac"] }
3435
serde = "1.0.217"
3536
serde_json = { version = "1.0.138", features = ["preserve_order"] }
3637
stac = { version = "0.14.0", features = ["geoarrow", "geoparquet"] }
37-
stac-api = { version = "0.8.1", features = ["client"] }
38+
stac-api = "0.8.1"
3839
stac-duckdb = "0.2.1"
39-
stac-io = { version = "0.1.1", features = ["store-all"] }
40+
stac-io = { version = "0.1.1", features = ["store-all", "geoparquet"] }
4041
thiserror = "2.0.12"
4142
tokio = { version = "1.44.0", features = ["rt-multi-thread"] }
4243
tracing = "0.1.41"

pyproject.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ filterwarnings = ["error"]
4848

4949
[tool.ruff]
5050
exclude = [
51-
"python/rustac/__init__.py",
5251
"docs/examples/example_*.py",
5352
"_obstore",
5453
]

0 commit comments

Comments
 (0)