janaf
Python wrapper for NIST-JANAF Thermochemical Tables
What it is and what it does
janaf is a Python wrapper around the NIST-JANAF Thermochemical Tables, a curated reference database of thermodynamic properties for chemical compounds. It lets you search for compounds by formula and retrieve their thermochemical data—heat capacity, entropy, Gibbs free energy, formation enthalpy, and more—across a temperature range, parsed directly into a polars DataFrame for analysis and calculation.
The package includes corrections for known data quality issues in the original NIST tables (missing signs, formatting gaps, stray comment lines) and exposes the underlying data as structured columns. It depends only on polars for data handling, making it lightweight to install. The bundled thermochemical data comes from NIST's official tables, though the wrapper itself is newly maintained.
Use it for:
- Look up standard formation enthalpies and Gibbs free energies for compounds at reference temperature (298.15 K) for equilibrium calculations.
- Retrieve heat capacity and entropy data across a temperature range for thermodynamic simulations or process design.
- Search for thermochemical properties of a specific compound by chemical formula to validate or supplement experimental measurements.
- Extract tabular thermodynamic data into a DataFrame for batch analysis or integration into a larger computational chemistry workflow.
- Verify compound identifiers and available temperature ranges before performing high-temperature thermodynamic calculations.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Searches and parses NIST-JANAF thermochemical tables into polars DataFrames, with corrections for common data quality issues in the source tables.
Yes, if you need reliable access to NIST-JANAF thermochemical reference data in Python. The package is actively maintained, has no known vulnerabilities, installs with minimal friction, and integrates cleanly with polars. The permissive license and low dependency count make it a straightforward addition to chemistry or materials science workflows. Not necessary if you already have direct access to NIST tables or use a different thermodynamic database.
Install
janaf on PyPI
pip
pip install janafuv
uv add janafpoetry
poetry add janafInstalling janaf
Before you install
Low install friction with a single polars dependency. Active maintenance with a recent release (31 days ago) and current commits; supports Python 3.10 through 3.15.
License in practice
Licensed under 0BSD (permissive), allowing unrestricted use. Note that the bundled NIST-JANAF data itself carries a separate NIST disclaimer regarding accuracy and liability.
Quickstart
pip install janaf
import janaf
table = janaf.search(formula="CO2$")
df = table.df
value = df.filter(pl.col("T(K)").is_close(298.15)).item(0, "delta-f H")
Requires polars to be installed; Python 3.10 or later.
Verify before relying
- Scope of data corrections applied (missing signs, missing tabs, comment lines) and whether they affect all compounds or specific subsets
- Whether search supports compound names, formulas, or both; regex support indicated but full query syntax not detailed
Package facts
| License | 0BSD (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — polars |
| Maintenance | actively maintained — 31 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 531,795/month — #6,152 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: janaf-1.4.0-py3-none-any.whl
Tags
More Physics packages
NetworkX provides data structures and…
permissive · top 1,000 on PyPI
sympySymPy is a Python library for symbolic…
permissive · top 1,000 on PyPI
pydicomPydicom reads, modifies, and writes DICOM…
permissive · top 5,000 on PyPI
albumentationsAlbumentations applies image transformations to…
permissive · top 5,000 on PyPI
CoolPropCoolProp provides thermodynamic and transport…
permissive · top 5,000 on PyPI
pyquaternionProvides quaternion representation,…
permissive · top 5,000 on PyPI
chemicalsRetrieves and calculates chemical properties…
permissive · top 15,000 on PyPI
thermoThermo calculates temperature and…
permissive · top 15,000 on PyPI
mendeleevProvides a Python API to query properties of…
permissive · top 15,000 on PyPI
polars-runtime-compatPolars-runtime-compat provides binary wheels…
permissive · top 15,000 on PyPI
dataframelyDataframely validates the schema and content of…
unclear · top 15,000 on PyPI
polars-dsPolars-ds adds data science and machine…
permissive · top 15,000 on PyPI
polarsPolars is a DataFrame query engine written in…
permissive · top 1,000 on PyPI
polars-runtime-32Polars-runtime-32 is a compiled runtime…
permissive · top 1,000 on PyPI
itablesRenders Pandas and Polars DataFrames as…
permissive · top 5,000 on PyPI
iapwsCalculates thermodynamic and transport…
copyleft · top 15,000 on PyPI