1- =========================================
2- Welcome to PurlDB documentation!
3- =========================================
1+ PurlDB Documentation
2+ ====================
43
4+ PurlDB provides tools to create and update a database of package metadata keyed by
5+ PURL (Package URL) and an API for the PURL data. PurlDB is an `AboutCode project <https://aboutcode.org >`_.
56
6- PurlDB aka. ``Package URL Database `` is a database of software package metadata keyed by Package-URL
7- or purl that offers information and indentication services about software packages.
7+ Details of the Package URL specification are available `here <https://github.com/package-url >`_.
88
9- A PURL or Package-URL is an attempt to standardize existing approaches to reliably identify and
10- locate software packages in general and Free and Open Source Software (FOSS) packages in
11- particular.
12-
13- A PURL is a URL string used to identify and locate a software package in a mostly universal and
14- uniform way across programming languages, package managers, packaging conventions, tools, APIs and
15- databases.
16-
17- Why PurlDB?
18- ------------------
19-
20- Modern software is assembled from 1000's of FOSS packages: being able to catalog these, normalize
21- their metadata, track their versions, licenses and dependencies and being able to discover, locate
22- and identify them as used in a codebase is essential to healthy, sustainable and secure modern
23- software development.
24-
25- This what PurlDB is all about and it offers:
9+ PurlDB offers:
2610
2711- An active, continuously updated reference for FOSS packages origin, information and licensing,
2812 aka. open code knowledge base.
@@ -31,137 +15,109 @@ This what PurlDB is all about and it offers:
3115- Additional utilities to help asses the quality and integrity of software packages as used in the
3216 software supply chain.
3317
18+ Documentation overview
19+ ~~~~~~~~~~~~~~~~~~~~~~
3420
35- What can you do PurlDB?
36- ------------------------
37-
38- - Build a comprehensive open source software packages knowledge base. This includes the extensive
39- scan of package code for origin, dependencies, embedded packages and licenses.
40-
41- - Create advanced analysis for open source packages by collecting
42- :ref: `symbols_and_strings `.
43-
44- - Detect software supply chain issues by mapping package binaries to their corresponding source code
45- and determining if there are possible discrepancies between sources and binaries (such as with the
46- XZ utils attack, or sources and binaries, where package may not report the exact source code
47- used to build binaries with the :ref: `deploy_to_devel ` mapping analysis.
21+ The overview below outlines how the documentation is structured
22+ to help you know where to look for certain things.
4823
49- - Access multiple services keyed by PURL, such as metadata, package versions, packages URLs, or
50- dependencies.
24+ .. rst-class :: clearfix row
5125
26+ .. rst-class :: column column2 top-left
5227
53- What's in PurlDB?
54- -------------------
28+ Getting started
29+ ~~~~~~~~~~~~~~~~~~~~~~
5530
56- The PurlDB project consists of these main tools:
57-
58- - PackageDB that is the database and reference model (based on ScanCode toolkit)
59- that contains package data with PURL (Package URLs) being a first class citizen and the primaty
60- key to access information.
61-
62- - MineCode that contains utilities to mine package repositories and populate the PackageDB
63-
64- - MatchCode that contains utilities to index package metadata and resources for
65- matching
66-
67- - MatchCode.io that provides code package and files matching functionalities for codebases
68-
69- - purldb-toolkit with its "purlcli" command line (CLI) utility and library to use the PurlDB, its
70- API and various related libraries.
71-
72- - ClearCode that contains utilities to mine Clearlydefined for package data.
31+ Start here if you are new to PurlDB.
7332
33+ - :doc: `getting-started/index `
7434
75- These are designed to be used first for reference such that one can query for
76- packages by purl and validate purl existence.
35+ .. rst-class :: column column2 top-right
7736
78- Collected packages can be used as reference for dependency resolution, as a reference knowledge base
79- for all package data, as a reference for vulnerable range resolution and more use cases. All of
80- these are important to support modern software development open source assembly.
37+ How-To
38+ ~~~~~~~~~~~~~~~~~~~~~~
8139
40+ Learn via practical step-by-step guides.
8241
83- Getting Started
84- ---------------
42+ - :doc: `how-to-guides/index `
8543
86- .. toctree ::
87- :maxdepth: 2
44+ .. rst-class :: column column2 bottom-left
8845
89- getting-started/index
46+ Reference Docs
47+ ~~~~~~~~~~~~~~~~~~
9048
91- ----
49+ Reference documentation for PurlDB features and customizations.
9250
93- PurlDB
94- ------
51+ - :doc: `matchcode/index `
9552
96- PurlDB is a database of packages, with package metadata and indexes for package
97- files and archives, and various API endpoints to get data about these packages
98- and match to other codebases.
53+ .. rst-class :: column column2 bottom-right
9954
100- .. toctree ::
101- :maxdepth: 2
55+ Explanations
56+ ~~~~~~~~~~~~~~~~~~
10257
103- purldb/index
58+ Consult the reference to understand PurlDB concepts.
10459
105- ----
60+ - :doc: ` purldb/index `
10661
107- PurlDB toolkit
108- --------------
62+ .. rst-class :: row clearfix
10963
110- purldb-toolkit is command line utility and library to use the PurlDB, its API
111- and various related libraries.
64+ Misc
65+ ~~~~~~~~~~~~~~~
11266
113- .. note ::
67+ - :doc: `license `
68+ - :doc: `funding `
69+ - :doc: `contributing `
70+ - :doc: `testing `
71+ - :doc: `changelog `
11472
115- purldb-toolkit has moved to its own repo at https://github.com/aboutcode-org/purldb-toolkit
116- from its previous location at https://github.com/aboutcode-org/purldb/tree/main/purldb-toolkit
73+ .. include :: improve-docs.rst
11774
118- ----
11975
120- Matchcode
121- ---------
76+ Indices and tables
77+ ==================
12278
123- Matchcode has the functionalities to index archives, files and directories for purldb
124- packages and API endpoints to make matching available. A ScanCode.io pipeline for
125- matching is also present to match scanned codebases.
79+ * :ref: `genindex `
80+ * :ref: `search `
12681
12782.. toctree ::
128- :maxdepth: 2
129-
130- matchcode/index
83+ :maxdepth: 2
84+ :hidden:
13185
86+ What can you do with PurlDB?
87+ ============================
13288
133- ----
89+ - Build a comprehensive open source software packages knowledge base. This includes the extensive
90+ scan of package code for origin, dependencies, embedded packages and licenses.
13491
135- How-To Documents
136- ----------------
92+ - Create advanced analysis for open source packages by collecting
93+ :ref: ` symbols_and_strings `.
13794
138- How-To documents explain how to accomplish specific tasks.
95+ - Detect software supply chain issues by mapping package binaries to their corresponding source code
96+ and determining if there are possible discrepancies between sources and binaries (such as with the
97+ XZ utils attack, or sources and binaries, where package may not report the exact source code
98+ used to build binaries with the :ref: `deploy_to_devel ` mapping analysis.
13999
140- .. toctree ::
141- :maxdepth: 2
100+ - Access multiple services keyed by PURL, such as metadata, package versions, packages URLs, or
101+ dependencies.
142102
143- how-to-guides/index
103+ What's in PurlDB?
104+ =================
144105
145- ----
106+ The PurlDB project consists of these main tools:
146107
147- See also
148- -------------
108+ - PackageDB that is the database and reference model (based on ScanCode toolkit)
109+ that contains package data with PURL (Package URLs) being a first class citizen and the primaty
110+ key to access information.
149111
150- .. toctree ::
151- :maxdepth: 2
112+ - MineCode that contains utilities to mine package repositories and populate the PackageDB
152113
153- license
154- funding
155- contributing
156- testing
157- changelog
114+ - MatchCode that contains utilities to index package metadata and resources for
115+ matching
158116
159- ----
117+ - MatchCode.io that provides code package and files matching functionalities for codebases
160118
119+ - purldb-toolkit with its "purlcli" command line (CLI) utility and library to use the PurlDB, its
120+ API and various related libraries.
161121
162- Indices and tables
163- ==================
122+ - ClearCode that contains utilities to mine Clearlydefined for package data.
164123
165- * :ref: `genindex `
166- * :ref: `modindex `
167- * :ref: `search `
0 commit comments