| Crates.io | galileo-types |
| lib.rs | galileo-types |
| version | 0.2.1 |
| created_at | 2024-01-13 20:45:14.356001+00 |
| updated_at | 2025-07-11 06:06:33.87891+00 |
| description | Trait based geo geometries and algorithms |
| homepage | |
| repository | https://github.com/Maximkaaa/galileo |
| max_upload_size | |
| id | 1098822 |
| size | 142,066 |
Galileo is a general purpose cross-platform geo-rendering library.

Architecture of Galileo is designed specifically to allow different modes of use:
This does bring certain challenges and adds to complexity. For example, caching of loaded and rendered objects works completely differently in server in client applications. Galileo is designed in such a way as to allow the user of the library to make all the relevant decisions and not to force one way.
It also does not make any assumptions about tile layer schemas, CRS and datums. Feature layers support transparent re-projecting into the map CRS (support for projecting tile layers is planned but not implemented yet).
At the moment Galileo uses wgpu backend to render the map. This means that
it can be used on any platform that wgpu supports:
Still, the backend is not integral part of the Galileo design, so we will probably try other promising backends (like vello).

At this point, you can develop an application using Galileo only in Rust. But there is
a POC example of how we envision future development on other platforms: [wasm_examples/raster_tiles].
When all main features of Galileo are more or less stable (or when a need arises) we
will add FFI bindings to other languages using wasm-bindgen and uniffi. This will
allow you to create your applications in JS, Kotlin, Swift or Python using
common API.
Galileo is an active WIP, here is the list of the features that are already present:
There are so many things that we all want from mapping engine, but it's impossible to have them all done at the same time. So here's our current plan and priorities:
* Stabiliaing before v1.0 doesn't mean that API won't have any breaking changes at all, but rather that the API will be well thought through and tested and all the changes will be tracked, and if anything breaking is introduced, there will be clear instructions how to upgrade.
Rust examples of using Galileo are located at galileo/examples. Refer to the readme
for the list, description and run instructions.
Most of the Galileo examples can be run in browser. You will need to have wasm_pack, just and python3 installed
on your system:
just web_example <example_name>
Then just open localhost:8000 in your browser.
Check out this example to run Galileo on Android.
Install the target:
rustup target add x86_64-pc-windows-gnu
Install cross-linker. For Debian/Ubuntu:
sudo apt-get install mingw-w64
And then build it:
cargo build --target x86_64-pc-windows-gnu
There is still a lot of work to be done to make Galileo feature-full, production ready and useful for many. And we would love to work on this full-time to bring this to you as soon as possible. So we are looking for sponsors to make it possible.
Sponsor funds will help support maintainer's dedicated work and eventually fund freelance contributors.
If you think this library can be useful to you or someone you love, consider supporting its development. Sponsoring comes with additional advantages:
Thank you Ragarnoy, Tzevet 5, quietlychris for sponsoring Galileo!
Thanks @spencer741, @alexkirsz for your support!
You can use this library without any worries as it is licensed under either of
at your option.
Feature requests, pull requests, bug reports, comments, questions and discussion are welcome. Please, follow the code of conduct when contributing.
Before pushing your changes, use just check command to make sure your code
will pass CI checks. You will need wasm32 target installed, rust nightly
toolchain and typos-cli (cargo install typos-cli) tool.
Note, that since the library is still in early stages of development, any part may change at any moment. So before starting any major undertaking with it or within it, open a discussion to sync your ideas with others' ideas.