Skip to content

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 框架写的简单命令行程序。

  • greet 命令,支持 --name 参数
  • 原为研究 Lux 时在 research/experiments/ 下的实验代码,已迁移至此
  • go.sum 纳入版本控制,保证依赖可复现构建
  • Source

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)
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 项目核心原理与代码阅读指南"
Links (5)