From 6dd8c427e2c1024a5afbf8f9445dcb07ce0a1a5a Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 29 Apr 2025 05:24:34 -0600 Subject: [PATCH 1/2] docs: update readme --- README.md | 22 ++++++++++++++++++---- img/rustac-small.png | Bin 0 -> 63167 bytes 2 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 img/rustac-small.png diff --git a/README.md b/README.md index a0c1e95..1550550 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,18 @@ ![PyPI - License](https://img.shields.io/pypi/l/rustac?style=for-the-badge) [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-2.1-4baaaa.svg?style=for-the-badge)](./CODE_OF_CONDUCT) -A Python package for [STAC](https://stacspec.org/) using Rust under the hood. +![The rustac logo](./img/rustac-small.png) +The power of Rust for the Python STAC ecosystem. + + > [!TIP] -> While you can pronounce "rustac" however you'd like, we like "ruh-stac". +> We pronounce **rustac** "ruh-stac". + +> [!NOTE] +> Until 2025-04-17, this package was named **stacrs**. +> See [this RFC](https://github.com/stac-utils/rustac/issues/641) for context on the name change. + ## Why? @@ -25,6 +33,7 @@ If you don't need those things, **rustac** probably isn't for you — use **pyst ## Installation +**rustac** has zero required dependencies. Install via **pip**: ```shell @@ -43,6 +52,7 @@ conda install conda-forge::rustac ### From source +You'll need [Rust](https://rustup.rs/). By default, **rustac** wants to find DuckDB on your system: ```shell @@ -58,7 +68,7 @@ MATURIN_PEP517_ARGS="--features=duckdb-bundled" python -m pip install -U git+htt ## Usage -```python exec="on" source="above" +```python import asyncio import rustac @@ -106,7 +116,7 @@ In particular, our [examples](https://stac-utils.github.io/rustac-py/latest/gene **rustac** comes with a CLI: -```bash exec="on" source="above" result="text" +```bash rustac -h ``` @@ -167,6 +177,10 @@ If you want to run an off-cycle docs update (e.g. if you fixed something and wan mike deploy [version] latest --push ``` +## Acknowledgements + +We'd like to thank [@jkeifer](https://github.com/jkeifer), [@parksjr](https://github.com/parksjr), and Rob Gomez (all from [@Element84](https://github.com/Element84)) for creating the [rustac logo](./img/rustac.svg) from an AI-generated image from the prompt "a crab, a cabin, and a glass of whisky". + ## License **rustac-py** is dual-licensed under both the MIT license and the Apache license (Version 2.0). diff --git a/img/rustac-small.png b/img/rustac-small.png new file mode 100644 index 0000000000000000000000000000000000000000..15ec35fc79152172282b0c1c24ff4a2a6064d7e1 GIT binary patch literal 63167 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%0DlOwKs_E5BD_G8t4g!aBU`l9UnA(BP678) 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 Z!Q-KJoJe0gv!Fgd1sPT8dP$S8{{cU{yD9(x literal 0 HcmV?d00001 From 5e29772d94fd5bf90e9ef934d5299ac34564017b Mon Sep 17 00:00:00 2001 From: Pete Gadomski Date: Tue, 29 Apr 2025 05:29:14 -0600 Subject: [PATCH 2/2] docs: update --- README.md | 2 +- docs/img/rustac-small.png | 1 + docs/index.md | 18 ++++++++++++++++-- 3 files changed, 18 insertions(+), 3 deletions(-) create mode 120000 docs/img/rustac-small.png diff --git a/README.md b/README.md index 1550550..96250e8 100644 --- a/README.md +++ b/README.md @@ -8,7 +8,7 @@ ![The rustac logo](./img/rustac-small.png) -The power of Rust for the Python STAC ecosystem. +The power of Rust for the Python [STAC](https://stacspec.org/) ecosystem. > [!TIP] diff --git a/docs/img/rustac-small.png b/docs/img/rustac-small.png new file mode 120000 index 0000000..bf78be1 --- /dev/null +++ b/docs/img/rustac-small.png @@ -0,0 +1 @@ +../../img/rustac-small.png \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 8ef2e0d..692551a 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,8 +1,18 @@ # rustac -> The power of Rust for the Python STAC ecosystem. +![The rustac logo](./img/rustac-small.png) -**rustac** is a zero-dependency Python package for [STAC](https://stacspec.org/) using Rust under the hood. +The power of Rust for the Python [STAC](https://stacspec.org/) ecosystem. + + +!!! tip + + We pronounce **rustac** "ruh-stac" + +!!! note + + Until 2025-04-17, this package was named **stacrs**. + See [this RFC](https://github.com/stac-utils/rustac/issues/641) for context on the name change. ## Installation @@ -29,3 +39,7 @@ asyncio.run(main()) ``` For more, see our [examples](./generated/gallery/index.md). + +## Acknowledgements + +We'd like to thank [@jkeifer](https://github.com/jkeifer), [@parksjr](https://github.com/parksjr), and Rob Gomez (all from [@Element84](https://github.com/Element84/)) for creating the rustac logo from an AI-generated image from the prompt "a crab, a cabin, and a glass of whisky".