authzed/zanzibar-annotated
authzed/zanzibar-annotated has 87 GitHub stars and 2 forks. GitHot measured 0 stars in 24 hours. Last checked 2026-11-12 08:58 UTC. Last push 2026-10-31.
Google's Zanzibar paper annotated for folks outside of Google
实测星标增长
- 24小时
- 0
- 7天
- 更新延迟
- 15天
- 更新延迟
- 1个月
- 更新延迟
各周期内的星标净变化,周期相互重叠,并非每日新增。缺失的测量保持空白。星标代表关注度,不代表软件质量。
README.md
原文Zanzibar Annotated
Zanzibar Annotated is a hosted copy of the paper presented at USENIX ATC 2019 describing the Zanzibar authorization system. It includes annotations that provide commentary on notable portions of the paper.
Looking for further discussion of the paper? Join our Discord.
Looking to contribute? See CONTRIBUTING.md.
Getting Started
First, run the development server:
cp .env.example .env.local
pnpm install
pnpm dev
Open http://localhost:3000 with your browser to see the paper.
Configuration
All configuration is through environment variables, documented in .env.example.
None are required for local development.
| Variable | Description |
|---|---|
PREVIEW_ENDPOINT |
Public base URL of the site, used in share preview image URLs. Defaults to https://$VERCEL_URL on Vercel, and otherwise to http://localhost:$PORT. Set it when self-hosting so previews use your public URL. |
Overview
The paper is presented by a reader app developed using the NextJS framework, Tailwind CSS for styling, and MDX for markdown integration in React. The markdown support also includes math typesetting using Katex and GitHub flavored features with remark-gfm.
Features
Paper Content and Layout
Paper content is written in Markdown using GitHub flavored syntax and Katex. The paper viewer app provides additional components that are used to provide layout instructions to emulate the actual published paper. This is in order to preserve the ability to refer to specific column and page numbers of the paper.
Shareable Highlights
A shareable URL is created when paper contents are selected and a visitor to that URL will be navigated directly to that portion of the paper. This functionality is based on the deeplinks.js library.
Annotations
Annotations to paper content can be shown along side the related part of the paper. Additionally, specific parts of the paper can be visibily highlighted and associated with an annotation.
The paper layout component expects an annotations context. The default annotation provider implementation uses YAML files to store all annotations and provides hooks for components to get annotations and annotation related state.
A collection of annotations can be organized into sets. Each set can be toggled on and off and can contain additional metadata to be displayed along side the paper.
YAML format
One YAML file per annotation set.
Annotation YAML file format:
id: <An identifier unique across annotation sets>
label: The short, human readable version of the id
title: The descriptive name for the set
subtitle: Additional description of the set
cta: Short Markdown string for a call to action or link to additional info.
description: Markdown string for additional information about the set.
highlightColor: A tailwind color class name used to color code the annotations and highlights for this set. See https://tailwindcss.com/docs/customizing-colors
(Annotations are organized into groups. Each group has an id such as "page-1-col-2" and each annotation has an id such as "across-applications".)
groups:
page-1-col-2:
across-applications:
...
page-2-col-1:
...
See the content directory for example.
Linking
An annotation set can be directly linked using a URL fragment in the format:
#annotations/<annotation set id>
An individual annotation can be directly linked using:
#annotations/<annotation set id>/<annotation entry id>
Open Graph Support
Preview images for selections are generated with next/og, and preview text is generated using NextJS server side rendering and JSDOM.
This provides a rich preview of the paper content when a shareable link is posted to another site.
The server renders the paper in-process to resolve selections, so no configuration is needed in the dev environment.
Note: The paper viewer app relies on a serverless function to generate the previews. Currently, Vercel is the only tested hosting service.
Host Your Own Paper
Other papers can be hosted using this reader app by providing the paper contents in MDX and deploying on Vercel.
Contribute and get in touch if you do!
探索相关项目
Asabeneh/30-Days-Of-Python
30 Days of Python 编程挑战是一份循序渐进的指南,用于在 30 天内学习 Python 编程语言。这项挑战可能需要超过 100 天。请按自己的节奏进行。这些视频或许也有帮助:https://www.youtube.com/channel/UC7PNRuno1rzYPb1xLa4yktw
78,618 星标grafana/grafana
开放且可组合的可观测性与数据可视化平台。可对来自 Prometheus、Loki、Elasticsearch、InfluxDB、Postgres 等众多数据源的指标、日志和追踪进行可视化。
77,859 星标redis/redis
对于正在构建实时数据驱动应用的开发者而言,Redis 是首选、速度最快且功能最丰富的缓存、数据结构服务器和文档与向量查询引擎。
77,472 星标apache/superset
Apache Superset 是一个数据可视化与数据探索平台
75,495 星标