An interactive tutorial environment for learning the Astral SDK and Location Protocol Framework using Deno as a Jupyter kernel.
This project demonstrates how to create cryptographically verifiable location attestations using modern JavaScript and TypeScript in a notebook-driven, interactive workflow.
.
├── README.md
├── pyproject.toml # Python project configuration (uv-managed)
├── deno.json # Deno configuration with imports and tasks
├── .gitignore
├── .venv/
└── notebooks/ # Jupyter notebook Guided Tutorials
└── utils/ # Utility modules and helper methods for notebooks
Before running setup, ensure you have installed:
Deno is a modern JavaScript/TypeScript runtime with built-in Jupyter support.
macOS/Linux:
curl -fsSL https://deno.land/x/install/install.sh | shWindows (PowerShell):
irm https://deno.land/install.ps1 | iexVerify installation:
deno --versionSee Deno Installation Guide for alternatives.
This project uses uv as the Python package installer and virtual environment manager.
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | shWindows (PowerShell):
irm https://astral.sh/uv/install.ps1 | iexOr via Homebrew (macOS):
brew install uvVerify installation:
uv --versionSee uv Installation Guide for more options.
Minimum Python version required is 3.12.0
uv venv .venvmacOS / Linux:
source .venv/bin/activateWindows:
.venv\Scripts\activateuv syncor alternatively:
pip install .This installs all dependencies listed in pyproject.toml, including JupyterLab.
deno jupyter --unstable --installYou'll see output confirming kernel installation:
[InstallKernelSpec] Installed kernelspec deno
✅ Deno kernelspec installed successfully.
jupyter labor with the through deno
deno run jupyterJupyterLab will open in your default browser at http://localhost:8888.
In your first notebook cell, run:
console.log("Deno Jupyter kernel ready ✅");
Deno.version;To test Astral SDK availability, in a cell run:
import { AstralSDK } from "https://esm.sh/@decentralized-geo/astral-sdk";
// Or alternatively, importing and saving to a variable
const astral = await Promise.all([import("https://esm.sh/@decentralized-geo/astral-sdk")]);
// You can then import specific modules from the `astral` variable
const { AstralSDK } = astral;deno task format
deno task lintdeno task checkUpdate deno.json manually, or use:
deno add jsr:@package/nameSee LICENSE file in the repository.