Prototypes
实验性 mini-project 集散地:快速验证的想法就地保存在仓库根目录 prototypes/<name>/,随仓库一起提交,不影响主站的构建、格式化与 lint 流程。 列表事实来源为仓库内 prototypes/README.md,本页保持同步;点击链接在新标签页 打开 GitHub 目录。
Overview
| Prototype | Category | Status | Created |
|---|---|---|---|
| ali-oss-client | Object Storage | 🟢 Working | 2026-08-01 |
| prototype-example | Others | 🟡 Experimental | 2026-08-01 |
| go-cli-urfave | Others | 🟡 Experimental | 2026-08-03 |
| supabase-storage-client | Object Storage | 🟢 Working | 2026-08-04 |
| r2-client | Object Storage | 🟢 Working | 2026-08-05 |
| protomaps-map-view | Maps | 🟢 Working | 2026-08-07 |
状态:🟡 Experimental(实验性,随时变化)· 🟢 Working(已验证可用)· ⏸️ Shelved(搁置)· ✅ Done(完成)· 🗑️ Abandoned(废弃)
Object Storage
相关文档:对象存储基本用法 · 挂载 Bucket(FUSE Mount) · 供应商对比 · 签名 URL(Signed URL)
ali-oss-client
TypeScript 原型,用官方 ali-oss SDK(pnpm 管理)演示阿里云 OSS 基本用法。
- 环境变量配置(密钥不入代码)
- 列 bucket / 对象
- 上传、下载
- 生成签名 URL(GET 下载 / PUT 上传)
- 删除对象(demo 对象自动清理)
- README 含基本的阿里云 OSS 配置步骤(RAM 用户 + AccessKey、建 bucket、region/endpoint、
.env.dev.local) - Source
supabase-storage-client
TypeScript 原型,用官方 @supabase/supabase-js SDK(pnpm 管理)在本地测试 Supabase Storage 基本用法。
- 自带
supabase/项目配置(supabase init,storage 默认开启),实现零配置本地运行 - anon key 未配置时自动从
supabase status -o env读取 - 列 bucket、建私有 bucket
- 列对象、上传(upsert)、下载
- 签名 URL(GET 下载 / PUT 上传)、公开 URL
- 删除对象(demo 对象自动清理;bucket 仅当本次运行创建时才删除,已有 bucket 保留)
- Source
r2-client
TypeScript 原型,用 S3 兼容 AWS SDK v3(@aws-sdk/client-s3 + @aws-sdk/s3-request-presigner,pnpm 管理)演示 Cloudflare R2 基本用法。
- 环境变量配置(密钥不入代码)
- 列 bucket、建 bucket(私有,缺失时自动创建)、列对象
- 上传、下载
- 预签名 URL(GET 下载 / PUT 上传)
- 删除对象(demo 对象自动清理;bucket 仅当本次运行创建时才删除)
- README 含测试环境准备(Cloudflare 账号 + 付费方式、R2 API Token、
.env.dev.local) - 本地 MinIO(S3 兼容,Docker)测试:
minio:start/minio:stop/minio:clean-volumes/minio:clean-images,无需 Cloudflare 账号即可跑通;Console 管理界面 http://127.0.0.1:9001 - Source
Others
go-cli-urfave
Go CLI 原型,用 urfave/cli v2 框架写的简单命令行程序。
prototype-example
最小 Rust hello-world 示例,用于验证原型机制的完整流程(不是实际功能原型)。
- 证明非 Python 工具链项目可以干净地放在
prototypes/下 - 不影响 MkDocs 构建、ruff / mdformat 格式化与 lint
- Source
Maps
相关文档:Protomaps 自建底图研究
protomaps-map-view
React + Vite + TypeScript 原型:在本地 Protomaps 底图上的通用地图组件 (MapLibre GL JS + pmtiles 协议 + @protomaps/basemaps 完整样式,pnpm 管理)。
- 本地瓦片:gitignored
.cache/pmtiles/(VITE_PMTILES_DIR/FILE配置),vite 内联插件在 dev/preview 同源挂载(HTTP Range 字节读取,无 CORS、无额外服务) - 通用
MapView:中心/缩放、中心 HUD、导航控件、marker(emoji 或圆点 + 标签 + 弹窗)、轨迹线图层、事件 props(onClick/onMove/onZoom/onIdle)、 运行时底图切换(多 pmtiles,换 URL 重建地图、换坐标移动相机) - 架构拆分:
src/lib/map/(MapController + basemap + layers + hooks,框架无关) - glyphs 本地化:
.cache/glyphs/+scripts/warm-glyphs.ts预热(支持 protomaps / maplibre 双源,后者含 CJK 真字形) - 可嵌入 widget:
createMapWidget()纯 HTML 直接可用(pnpm build:widget, pmtiles/glyphs 作为参数),examples/embed.html示例;分发不走 npm (直接 copy 产物,或 js/css + 瓦片 + 字体一起发 S3) - 已知限制:官方字体无 CJK(
pnpm warm:glyphs --source=maplibre可解); maplibre 固定 v5(v6 与 pmtiles 协议不兼容,见 README Known issue) - Source
Backlinks (4)
- 对象存储供应商对比(S3 / R2 / OSS / Supabase / MinIO)
- 对象存储基本用法(Bucket / Object / 常用操作)
- 对象存储签名 URL(Signed URL)原理与实战
- MapLibre 集成 Protomaps
flowchart LR
n0["AI"]
n1["Database"]
n2["Dev Tools"]
n3["Emoji"]
n4["Frontend"]
n5["Game Dev"]
n6["Collection"]
n7["Languages"]
n8["Maps"]
n9["Media"]
n10["Monitor"]
n11["Plans"]
n12["Knowledge"]
n13["Cloud"]
n14["对象存储基本用法(Bucket / Object / 常用操作)"]
n15["对象存储数据迁移(R2 → MinIO / 跨厂商搬迁)"]
n16["Object Storage"]
n17["挂载 Bucket 为本地文件系统(FUSE Mount)"]
n18["对象存储签名 URL(Signed URL)原理与实战"]
n19["对象存储供应商对比(S3 / R2 / OSS / Supabase / MinIO)"]
n20["Infrastructure"]
n21["Prototypes"]
n22["Research"]
n23["Better Auth 源码阅读指南"]
n24["DuckDB 环境与基本使用"]
n25["DuckDB 实战研究"]
n26["DuckDB 模拟数据"]
n27["PostgreSQL 数据用 DuckDB 加速查询"]
n28["HK 角色阅读"]
n29["HK 台词阅读"]
n30["Hollow Knight 英语主题"]
n31["HK 物品阅读"]
n32["HK 地点阅读"]
n33["HK 世界观 / Lore 阅读"]
n34["英语学习 Dashboard"]
n35["English Scraps Archive"]
n36["English Scraps 使用指南"]
n37["Jellyfin 源码阅读指南"]
n38["Lux 资料整理"]
n39["Nest Commander 学习资料"]
n40["NestJS 源码阅读指南"]
n41["Protomaps 自建底图研究"]
n42["自制 PMTiles 地图(最简单例子)"]
n43["MapLibre 集成 Protomaps"]
n44["PMTiles 格式与工具链"]
n45["上海地区底图项目"]
n46["Redash 源码阅读指南"]
n47["Rust 学习计划"]
n48["shadcn/ui 源码阅读指南"]
n49["TRIP 项目核心原理与代码阅读指南"]
n1 --> n25
n6 --> n0
n6 --> n1
n6 --> n2
n6 --> n3
n6 --> n4
n6 --> n5
n6 --> n7
n6 --> n8
n6 --> n9
n6 --> n10
n6 --> n11
n6 --> n22
n12 --> n20
n13 --> n16
n14 --> n15
n14 --> n18
n14 --> n19
n14 --> n21
n15 --> n14
n15 --> n17
n15 --> n18
n15 --> n19
n16 --> n14
n16 --> n15
n16 --> n17
n16 --> n18
n16 --> n19
n17 --> n14
n17 --> n18
n17 --> n19
n18 --> n21
n19 --> n14
n19 --> n15
n19 --> n18
n19 --> n21
n20 --> n13
n21 --> n14
n21 --> n17
n21 --> n18
n21 --> n19
n21 --> n41
n22 --> n23
n22 --> n25
n22 --> n34
n22 --> n37
n22 --> n38
n22 --> n39
n22 --> n40
n22 --> n41
n22 --> n46
n22 --> n47
n22 --> n48
n22 --> n49
n24 --> n26
n25 --> n1
n25 --> n22
n25 --> n24
n25 --> n26
n25 --> n27
n26 --> n24
n26 --> n27
n27 --> n25
n27 --> n26
n30 --> n28
n30 --> n29
n30 --> n31
n30 --> n32
n30 --> n33
n30 --> n36
n34 --> n30
n34 --> n35
n34 --> n36
n36 --> n34
n36 --> n35
n41 --> n8
n41 --> n42
n41 --> n43
n41 --> n44
n41 --> n45
n42 --> n44
n43 --> n21
n43 --> n45
n44 --> n42
n44 --> n45
n45 --> n43
n45 --> n44
click n0 "../collection/ai/" "AI"
click n1 "../collection/database/" "Database"
click n2 "../collection/dev-tools/" "Dev Tools"
click n3 "../collection/emoji/" "Emoji"
click n4 "../collection/frontend/" "Frontend"
click n5 "../collection/game-dev/" "Game Dev"
click n6 "../collection/" "Collection"
click n7 "../collection/languages/" "Languages"
click n8 "../collection/maps/" "Maps"
click n9 "../collection/media/" "Media"
click n10 "../collection/monitor/" "Monitor"
click n11 "../collection/scraps/plans/" "Plans"
click n12 "../knowledge/" "Knowledge"
click n13 "../knowledge/infrastructure/cloud/" "Cloud"
click n14 "../knowledge/infrastructure/cloud/object-storage/basic-usage/" "对象存储基本用法(Bucket / Object / 常用操作)"
click n15 "../knowledge/infrastructure/cloud/object-storage/data-migration/" "对象存储数据迁移(R2 → MinIO / 跨厂商搬迁)"
click n16 "../knowledge/infrastructure/cloud/object-storage/" "Object Storage"
click n17 "../knowledge/infrastructure/cloud/object-storage/mount-bucket/" "挂载 Bucket 为本地文件系统(FUSE Mount)"
click n18 "../knowledge/infrastructure/cloud/object-storage/signed-url/" "对象存储签名 URL(Signed URL)原理与实战"
click n19 "../knowledge/infrastructure/cloud/object-storage/vendors-comparison/" "对象存储供应商对比(S3 / R2 / OSS / Supabase / MinIO)"
click n20 "../knowledge/infrastructure/" "Infrastructure"
click n21 "./" "Prototypes"
click n22 "../research/" "Research"
click n23 "../research/topics/better-auth/" "Better Auth 源码阅读指南"
click n24 "../research/topics/duckdb/basic-usage/" "DuckDB 环境与基本使用"
click n25 "../research/topics/duckdb/" "DuckDB 实战研究"
click n26 "../research/topics/duckdb/mock-data/" "DuckDB 模拟数据"
click n27 "../research/topics/duckdb/postgresql-acceleration/" "PostgreSQL 数据用 DuckDB 加速查询"
click n28 "../research/topics/english/hollow-knight/characters/" "HK 角色阅读"
click n29 "../research/topics/english/hollow-knight/dialogues/" "HK 台词阅读"
click n30 "../research/topics/english/hollow-knight/" "Hollow Knight 英语主题"
click n31 "../research/topics/english/hollow-knight/items/" "HK 物品阅读"
click n32 "../research/topics/english/hollow-knight/locations/" "HK 地点阅读"
click n33 "../research/topics/english/hollow-knight/lore/" "HK 世界观 / Lore 阅读"
click n34 "../research/topics/english/" "英语学习 Dashboard"
click n35 "../research/topics/english/scraps/archive/" "English Scraps Archive"
click n36 "../research/topics/english/scraps/" "English Scraps 使用指南"
click n37 "../research/topics/jellyfin/" "Jellyfin 源码阅读指南"
click n38 "../research/topics/lux/" "Lux 资料整理"
click n39 "../research/topics/nest-commander/" "Nest Commander 学习资料"
click n40 "../research/topics/nestjs/" "NestJS 源码阅读指南"
click n41 "../research/topics/protomaps/" "Protomaps 自建底图研究"
click n42 "../research/topics/protomaps/make-own-map/" "自制 PMTiles 地图(最简单例子)"
click n43 "../research/topics/protomaps/maplibre/" "MapLibre 集成 Protomaps"
click n44 "../research/topics/protomaps/pmtiles/" "PMTiles 格式与工具链"
click n45 "../research/topics/protomaps/shanghai-map/" "上海地区底图项目"
click n46 "../research/topics/redash/" "Redash 源码阅读指南"
click n47 "../research/topics/rust/" "Rust 学习计划"
click n48 "../research/topics/shadcn-ui/" "shadcn/ui 源码阅读指南"
click n49 "../research/topics/trip/" "TRIP 项目核心原理与代码阅读指南"