|
| 1 | +# rsky-satnav: Structured Archive Traversal, Navigation & Verification 🛰️ 🚘 |
| 2 | + |
| 3 | +**Work-in-Progress:** |
| 4 | +rsky-satnav is a prototype tool for visually exploring DASL CAR and AT Protocol repositories entirely in your browser. All processing is done locally—no data is tracked or sent externally. |
| 5 | + |
| 6 | +## Overview |
| 7 | + |
| 8 | +rsky-satnav lets you load a CAR file (Content-Addressable Archive) and visually inspect its contents using a collapsible, directory-style UI. It leverages MST (Merkle Sorted Tree) logic to group records by collection for an intuitive file-directory-like experience. |
| 9 | + |
| 10 | +## Features |
| 11 | + |
| 12 | +- **Local-Only Processing:** |
| 13 | + All CAR file processing happens in your browser. No data is transmitted or stored externally. |
| 14 | + |
| 15 | +- **Visual Exploration:** |
| 16 | + View repository data in a collapsible, directory-style listing that mimics a file explorer. |
| 17 | + |
| 18 | +- **MST-Based Grouping:** |
| 19 | + Automatically groups repository records by collection, making it easier to navigate complex data structures. |
| 20 | + |
| 21 | +## Roadmap |
| 22 | + |
| 23 | +- **CAR Diffing:** |
| 24 | + Compare different CAR files to identify changes and differences. |
| 25 | + |
| 26 | +- **CAR Slicing:** |
| 27 | + Extract and work with subsets of repository data. |
| 28 | + |
| 29 | +- **Enhanced Sorting & Filtering:** |
| 30 | + Improve UI controls to sort and filter collections more easily. |
| 31 | + |
| 32 | +- **Blob Retrieval & Verification:** |
| 33 | + Retrieve embedded Blobs and cryptographically verify CAR files. |
| 34 | + |
| 35 | +- **External API Integration (if needed):** |
| 36 | + - Look up DIDs and fetch public signing keys for commit signature verification. |
| 37 | + - Retrieve current PDS data using `com.atproto.sync.getRepo` for downloading repositories. |
| 38 | + |
| 39 | +## Development |
| 40 | + |
| 41 | +rsky-satnav is built with [Dioxus](https://github.com/DioxusLabs/dioxus) for the UI and styled with [Tailwind CSS](https://tailwindcss.com/). |
| 42 | + |
| 43 | +### Prerequisites |
| 44 | + |
| 45 | +- **Rust:** A recent version is required. |
| 46 | +- **Node.js & npm:** Needed for managing Tailwind CSS. |
| 47 | + |
| 48 | +### Setup |
| 49 | + |
| 50 | +1. Install npm: https://docs.npmjs.com/downloading-and-installing-node-js-and-npm |
| 51 | +2. Install the Tailwind CSS CLI: https://tailwindcss.com/docs/installation |
| 52 | +3. Run the following command in the root of the project to start the Tailwind CSS compiler: |
| 53 | + |
| 54 | +```bash |
| 55 | +npx tailwindcss -i ./input.css -o ./assets/tailwind.css --watch |
| 56 | +``` |
| 57 | + |
| 58 | +### Serving The App |
| 59 | + |
| 60 | +Run the following command in the root of your project to start developing with the default platform: |
| 61 | + |
| 62 | +```bash |
| 63 | +dx serve |
| 64 | +``` |
| 65 | + |
| 66 | +To run for a different platform, use the `--platform platform` flag. E.g. |
| 67 | +```bash |
| 68 | +dx serve --platform desktop |
| 69 | +``` |
| 70 | + |
| 71 | +## Privacy |
| 72 | + |
| 73 | +All file processing and data exploration is performed entirely on your local machine in the browser. No external tracking or data transmission occurs. |
| 74 | + |
| 75 | +## License |
| 76 | + |
| 77 | +This project is released under the [Apache License 2.0](../LICENSE). |
0 commit comments