Parqlet.Client.Storage.Gcs
0.1.14
dotnet add package Parqlet.Client.Storage.Gcs --version 0.1.14
NuGet\Install-Package Parqlet.Client.Storage.Gcs -Version 0.1.14
<PackageReference Include="Parqlet.Client.Storage.Gcs" Version="0.1.14" />
<PackageVersion Include="Parqlet.Client.Storage.Gcs" Version="0.1.14" />
<PackageReference Include="Parqlet.Client.Storage.Gcs" />
paket add Parqlet.Client.Storage.Gcs --version 0.1.14
#r "nuget: Parqlet.Client.Storage.Gcs, 0.1.14"
#:package Parqlet.Client.Storage.Gcs@0.1.14
#addin nuget:?package=Parqlet.Client.Storage.Gcs&version=0.1.14
#tool nuget:?package=Parqlet.Client.Storage.Gcs&version=0.1.14
parqlet
A pay-per-use multi-tenant analytics runtime built on Lambda/Cloud Run/server + DuckDB + columnar storage. Ad-hoc SQL over tenant-scoped data with per-tenant cache affinity, $0 idle cost, and a unified client across TypeScript, Python, and .NET.
Status: Active development. Authoritative specification: docs/authoritative-spec.md.
At a glance
| Concept | Summary |
|---|---|
| Writes bypass the runtime | Clients write directly to S3/GCS/Blob/FS via a caller-supplied storage SDK instance (§5.2). |
| Runtime is read-only | Lambda / Cloud Run / Azure Functions / server slots pull parquet files on demand, cache locally, and serve SQL (§6). |
| Tenant is first-class | Every operation carries tenant identity. No default tenant escape hatch (§2). |
| Pluggable everything | Storage, StateStore, Auth, SlotProvisioner, Transport, CacheManager — all traits (§6.2–§6.7). |
| One client = one env | Multi-env applications hold multiple clients and pick per call site (§2, §13). |
| Cursor-paginated reads | Self-describing continuation tokens; strict mode surfaces mid-traversal drift via edition fingerprints (§5.4). |
Repository layout
| Path | Contents |
|---|---|
protocol/ |
JSON Schema wire contract + canonical fixtures + generated types for TS/Python/.NET |
runtime/core/ |
Rust — env-agnostic handler + trait definitions |
runtime/{storage,state,auth,provisioning,transport}/* |
Rust — adapter impls (per-crate, feature-opt-in) |
runtime/envs/{lambda,cloud-run,azure-functions,server}/ |
Rust — env-specific binaries |
clients/ts/packages/* |
TypeScript client + per-adapter npm packages |
clients/python/* |
Python client + per-adapter distributions (uv workspace) |
clients/dotnet/* |
.NET solution: Parqlet.Client core + per-adapter assemblies |
clients/shared-contracts/ |
Cross-language codegen driver (Node) |
examples/ |
End-to-end demos (filled in from Phase 1 onward) |
test/ |
Cross-runtime conformance suite (filled in from Phase 1 onward) |
Prerequisites
Install everything below before running just test-all.
| Tool | Minimum | Notes |
|---|---|---|
| Rust | stable 1.80+ | rustup toolchain install stable |
| Node.js | 20+ | via any installer |
| pnpm | 10.33.0 | npm install -g pnpm@10.33.0 |
| uv | 0.5+ | Python workspace manager |
| .NET SDK | 8.0+ | dotnet --version |
| just | 1.40+ | npm install -g rust-just or cargo install just |
Building & testing
# The single gate. CI runs this; so must you before opening a PR.
just test-all
Granular targets:
| Command | What it does |
|---|---|
just protocol-check |
Validate every fixture against its schema; re-check generated types are in sync |
just rust-all |
cargo fmt --check-ish + clippy -D warnings + build + test across the workspace |
just ts-all |
Install, build, lint, test every TS package |
just py-all |
uv sync --all-packages + ruff + pytest |
just dotnet-all |
dotnet build + dotnet test on the solution |
Contributing
Read these in order before touching code:
docs/authoritative-spec.md.CLAUDE.mdfor project-level conventions.PROGRESS.mdfor current status and history.
If a decision arises that is not settled in the authoritative spec, surface it to a human.
Protocol ownership
/protocol/schemas/*.schema.json is the source of truth. Changes must:
- Edit the schema.
- Update or add fixtures under
/protocol/fixtures/and list them in_index.json. - Run
pnpm --filter @parqlet/shared-contracts run generateto regenerate TS / Python / .NET types. - Commit both the schema and the generated artifacts.
CI enforces drift detection with pnpm run protocol:validate + --check on the generator.
License
Apache-2.0.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net8.0
- Google.Cloud.Storage.V1 (>= 4.10.0)
- Parqlet.Client (>= 0.1.14)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.