PLDB is a public domain ScrollSet and website containing over 135,000 facts about over 5,000 programming languages.
This repo contains the entire ScrollSet, code, and website for http://pldb.info.
The entire ScrollSet is ready to analyze in popular formats. Full documentation is here: http://pldb.info/csv.html
git clone https://github.com/breck7/pldb
cd pldb
# Required to run this during first install only.
npm i -g cloc
# Required to run this on fresh checkout and when upgrading from an old checkout or periodically when there are new releases
npm install .
# (Optional) Run tests
npm run test
npm run build
# After you make changes and before you commit make sure to run:
npm run format
Edit the ScrollSet files in concepts/, update parsers in code/measures.parsers, or modify any other source files.
When you push to the main branch, a GitHub Actions workflow automatically:
site.tar.gzlatestThe build takes about 2 minutes on GitHub's runners.
The setup-pldb.sh script deploys the pre-built site to a fresh Ubuntu server (tested on Ubuntu 24.04). It downloads the build artifact from GitHub Releases, so no building happens on the server.
Requirements:
latest release must exist)./setup-pldb.sh <ip-address> <repo-url>
# Example:
./setup-pldb.sh 159.65.99.188 https://github.com/kaby76/pldb.git
The script will:
pldb) to serve the site on port 80After deployment, manage the server with:
systemctl status pldb # Check status
systemctl restart pldb # Restart server
systemctl stop pldb # Stop server
journalctl -u pldb -f # View logs
After pushing new changes to main, wait for the GitHub Actions build to complete, then re-run setup-pldb.sh to deploy the updated site.
The most important folder is concepts, which contains the ScrollSet (a file for each concept). The file code/measures.parsers contains the Parsers (schema) for the ScrollSet.
You can see the cloc language stats on this repo at http://pldb.info/pages/about.html.
PLDB content is published to the public domain and you can use it freely. If needed, here are 3 options for citing PLDB:
http://pldb.info
PLDB contributors. (2026) - "PLDB: a Programming Language Database". Retrieved from: 'http://pldb.info' [Online Resource]
@article{pldb,
author = {PLDB contributors},
title = {PLDB: a Programming Language Database},
journal = {PLDB},
year = {2026},
note = {http://pldb.info}
}
All sources for PLDB can be found here: http://pldb.info/pages/acknowledgements.html