{"id":13872068,"url":"https://github.com/tayloraswift/swift-biome","last_synced_at":"2025-07-16T01:32:51.039Z","repository":{"id":37256216,"uuid":"271935708","full_name":"tayloraswift/swift-biome","owner":"tayloraswift","description":"serve versioned, multi-package swift documentation, at scale","archived":true,"fork":false,"pushed_at":"2023-09-14T23:27:29.000Z","size":11211,"stargazers_count":39,"open_issues_count":17,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-30T17:21:42.445Z","etag":null,"topics":["docc","documentation-compiler","server-side-swift","swift"],"latest_commit_sha":null,"homepage":"https://swiftinit.org/reference/swift","language":"Swift","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tayloraswift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-06-13T03:49:53.000Z","updated_at":"2023-09-14T23:28:04.000Z","dependencies_parsed_at":"2022-07-12T04:31:11.595Z","dependency_job_id":null,"html_url":"https://github.com/tayloraswift/swift-biome","commit_stats":null,"previous_names":["kelvin13/swift-biome"],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fswift-biome","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fswift-biome/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fswift-biome/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tayloraswift%2Fswift-biome/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tayloraswift","download_url":"https://codeload.github.com/tayloraswift/swift-biome/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226090030,"owners_count":17572114,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docc","documentation-compiler","server-side-swift","swift"],"created_at":"2024-08-05T23:00:33.096Z","updated_at":"2024-11-23T19:31:35.989Z","avatar_url":"https://github.com/tayloraswift.png","language":"Swift","funding_links":[],"categories":["Swift"],"sub_categories":[],"readme":"**Swift Biome has been superseded by [Swift Unidoc](https://github.com/tayloraswift/swift-unidoc)!**\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003e\u003cem\u003e\u003ccode\u003ebiome\u003c/code\u003e\u003c/em\u003e\u003c/strong\u003e\u003cbr\u003e\u003csmall\u003e\u003ccode\u003e0.3.2\u003c/code\u003e\u003c/small\u003e\n\u003c/p\u003e\n\n**`swift-biome`** is a versioned, multi-package Swift documentation compiler. \n\nBiome is meant to be the back-end component of a web service or a static site generator. Biome handles symbolgraph parsing, dependency resolution, cross-linking, version control, organization, presentation, HTML rendering, and URI routing.\n\nBiome powers the [swiftinit.org ecosystem documentation](https://swiftinit.org/reference/swift)!\n\n![screenshot](screenshots/screenshot@v0.3.2.png)\n\n## Overview\n\nBiome is built atop many of the same components as DocC. Its primary input source is the symbolgraph format generated by [`lib/SymbolGraphGen`](https://github.com/apple/swift/tree/main/lib/SymbolGraphGen). It also reads `Package.resolved`, and `Package.catalog`, which is generated by the [`swift-package-catalog`](https://github.com/kelvin13/swift-package-catalog) plugin.\n\nSince v0.3.1, Biome compiles raw symbolgraphs ahead-of-time into the `ss` file format, which is a more performant, compact, and compression algorithm-friendly symbolgraph representation. \n\nBiome includes a tool, `swift-symbolgraphc`, which can be used to convert raw symbolgraphs into `ss` files.\n\nThe [`swift-biome-resources`](https://github.com/swift-biome/swift-biome-resources) submodule holds precompiled `ss` files for recent versions of the standard library, and various sources and webpacks for its default frontend.\n\nThe [`ecosystem`](https://github.com/swift-biome/ecosystem) repository is not tracked by this repository, but it contains historical symbolgraphs, `Package.resolved` files, and `Package.catalog` files for select ecosystem packages.\n\nThe `swift-biome` package includes an executable [`swift-nio`](https://github.com/apple/swift-nio)-based target called `preview` which can be used to build and browse docs locally. **This server does not have security features, and is not intended to be used in production**. \n\nConsumers of `swift-biome` with more sophisticated use-cases are expected to implement their own web server interfacing with Biome via [`WebSemantics`](https://github.com/kelvin13/swift-resource).\n\nThe frontend is written in Sass and Typescript.\n\n## Building  \n\nBuilding Biome requires the `DEVELOPMENT-SNAPSHOT-2022-08-09-a` toolchain. The toolchain requirement is exact due to the way that [`swift-syntax`](https://github.com/apple/swift-syntax.git) and [`swift-markdown`](https://github.com/apple/swift-markdown.git) link to the swift runtime.\n\nCurrently, Biome can only be built on linux. Ubuntu and Amazon Linux 2 are officially supported. The only technical limitations preventing Biome from building on macOS are a handful of file system APIs used by the `PackageLoader` target, and we hope to port Biome to macOS soon.\n\n## Constituents \n\n### Subpackages \n\n1. [**`swift-balanced-trees`**](swift-balanced-trees)\n\n    Provides a red-black forest implementation, used by Biome’s in-memory database. (Biome uses a red-black forest, and not a collection of B-trees because it versions symbols individually.)\n\n### Library products \n\n1. [**`URI`**](Sources/URI)\n\n    Implements a URI parser and basic URI operations.\n\n1. [**`Versions`**](Sources/Versions)\n\n    Implements semantic versions.\n\n1. [**`SymbolGraphs`**](Sources/SymbolGraphs)\n\n    Decodes raw symbolgraph fragments emitted by the swift compiler, performs module-local post-processing, and encodes them into symbolgraph files. Also provides type definitions for various source code constructs. \n\n1. [**`Biome`**](Sources/Biome)\n\n    Implements the documentation compiler, renderer, and in-memory database. \n\n1. [**`PackageResolution`**](Sources/PackageResolution)\n\n    Decodes the `Package.resolved` file format. \n\n1. [**`PackageCatalogs`**](Sources/PackageCatalogs)\n\n    Decodes the `Package.catalog` file format, and handles loading and discovery of symbolgraphs, DocC archives, and SPM snippets from the file system. Can also invoke `SymbolGraphs` to compile raw symbolgraph fragments on-the-fly.\n\n1. [**`PackageLoader`**](Sources/PackageLoader)\n\n    Invokes `PackageCatalogs` and `Biome`, and provides convenience APIs for adding symbolgraphs from the former to the latter.\n\n### Executable products \n        \n1. [**`Preview`**](Sources/Preview) (`preview`)\n\n    A basic, unsecured `swift-nio`-based server suitable for browsing Biome docs locally.\n\n2. [**`SymbolGraphConvert`**](Sources/SymbolGraphConvert) (`swift-symbolgraphc`)\n\n    A command-line interface for invoking `SymbolGraphs`. Supports multithreading.\n\n### External dependencies \n\n1. [**`swift-grammar`**](https://github.com/kelvin13/swift-grammar) \n1. [**`swift-json`**](https://github.com/kelvin13/swift-json) \n1. [**`swift-highlight`**](https://github.com/kelvin13/swift-highlight) \n1. [**`swift-resource`**](https://github.com/kelvin13/swift-resource) \n1. [**`swift-dom`**](https://github.com/kelvin13/swift-dom) \n1. [`apple/`**`swift-markdown`**](https://github.com/apple/swift-markdown)\n1. [`apple/`**`swift-syntax`**](https://github.com/apple/swift-syntax)\n\nThe swiftinit.org deployment also depends on @Joannis ’s [`mongokitten`](https://github.com/orlandos-nl/MongoKitten), although `swift-biome` itself does not depend on it.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftayloraswift%2Fswift-biome","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftayloraswift%2Fswift-biome","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftayloraswift%2Fswift-biome/lists"}