- Rust 99.1%
- Nix 0.9%
| .sqlx | ||
| docs | ||
| LICENSES | ||
| migrations | ||
| src | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| Cargo.lock | ||
| Cargo.toml | ||
| config.example.toml | ||
| flake.lock | ||
| flake.nix | ||
| README.md | ||
| REUSE.toml | ||
beaconDB
A privacy focused assisted GPS service written in Rust.
beaconDB aims to be an alternative to Mozilla Location Services that offers public domain dumps of its WiFi database.
When Mozilla Location Services shut down, it wasn't able to publish the massive amount of WiFi APs its users had collected due to legal and privacy concerns. beaconDB plans to obfuscate the data it releases to mitigate these issues.
For information on how to use and contribute to beaconDB, please see [beaconDB's website].
Please note that beaconDB is experimental and under active development. Data exports are not ready yet. Some data is not yet obfuscated.
Development
To compile beaconDB, you'll need the following on your system:
- Rust
- SQLx (
cargo install sqlx-cli) - PostgreSQL
beaconDB relies on SQLx to manage database migrations and provide compile-time type checking. SQLx uses the DATABASE_URL environment variable to connect to Postgres. If your account is configured as a superuser, the configuration in .env.example should work as-is. Otherwise, please see SQLx's Postgres connection options for more information.
cp .env.example .env
cargo sqlx database create
cargo sqlx migrate run
Usage
Please see config.toml for beaconDB's configuration options.
# serve the API on http://localhost:8080
cargo run serve
If you are using NeoStumbler, you can send your data to machine's database by configuring a custom endpoint and reuploading collected data in settings.