refkit-core
refkit-core is the native Rust/PyO3 package used by refkit.
It exposes the extension module refkit_core._refkit_core and the Python import package refkit_core.
Most projects should install refkit:
pip install refkit
refkit pins one exact refkit-core version and checks that version at import time.
Direct refkit_core imports are supported for native integration tests, packaging smoke tests, and low-level embedding.
import refkit_core
library = refkit_core.Library.parse_bibtex(
"""
@article{doe2024,
author = {Doe, Jane},
title = {Fast Citations},
journal = {Journal of Citation Tests},
year = {2024}
}
"""
)
document = refkit_core.Document(library, refkit_core.Style.load("apa"), locale="en-US")
rendered = document.render([refkit_core.Citation("intro", "doe2024")])
print(rendered["intro"].text)
Expected output:
(Doe, 2024)
tidy_bibtex formats BibTeX text through the same native package:
result = refkit_core.tidy_bibtex(
"@ARTICLE{doe2024, pages={6-13}, year={2024}}\n",
options=refkit_core.TidyOptions(sort_fields=True),
)
print(result.bibtex)
Package Contract
refkit-core owns the native implementation for:
| Capability | Public objects |
|---|---|
| Read normalized bibliography data | Library.read, Library.parse_bibtex, Library.parse_yaml |
| Render citations | Document.render, Citation, Cite, CitationGroup |
| Render bibliographies | Document.cited_bibliography, Document.full_bibliography |
| Load CSL styles and locales | Style.load, Style.from_path, Style.from_xml, Locale.load |
| Format BibTeX | tidy_bibtex, TidyOptions, TidyResult, TidyWarning |
| Edit raw BibTeX | BibDocument, BibEntry, BibField |
| Inspect rendered output | Rendered.text, Rendered.html, Rendered.tree |
Use refkit for one-call path helpers such as refkit.cite and refkit.full_bibliography.
Pyodide
Pyodide uses the same native extension package as CPython.
The release workflow builds refkit-core for wasm32-unknown-emscripten with toolchain values from pyodide config get, then publishes the PyEmscripten wheel alongside the CPython wheels.
The pure Python refkit package keeps the same exact dependency on refkit-core, so Pyodide resolves the matching wheel from PyPI.
The Pyodide lane takes the Python target and PyEmscripten ABI from the release workflow.
Development
uv sync --all-packages --group dev
(cd packages/refkit-core && uv run maturin develop)
uv run pytest packages/refkit/tests --no-cov
Build only the native package:
uv build --package refkit-core --no-create-gitignore
License
refkit-core is licensed under the Apache License, Version 2.0, available in LICENSE. See NOTICE for upstream citation and bibliography component acknowledgements.
Release files for refkit-core 0.0.3
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| refkit_core-0.0.3.tar.gz | 76.8 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| refkit_core-0.0.3-cp311-abi3-win_amd64.whl | CPython 3.11 | abi3 | Windows x86-64 | Details |
| refkit_core-0.0.3-cp311-abi3-pyemscripten_2026_0_wasm32.whl | CPython 3.11 | abi3 | PyEmscripten 2026.0+ WebAssembly | Details |
| refkit_core-0.0.3-cp311-abi3-manylinux_2_34_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.34+ x86-64 | Details |
| refkit_core-0.0.3-cp311-abi3-macosx_11_0_arm64.whl | CPython 3.11 | abi3 | macOS 11.0+ ARM64 | Details |
Total release size: 10.2 MB
Release files / refkit_core-0.0.3.tar.gz
| Download URL | refkit_core-0.0.3.tar.gz |
|---|---|
| Size | 76.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
619539a47b4255bce54f6530fb8622e162f12e61a255c6b8916ddec5779bc257
|
|
BLAKE2b-256 checksum How to use checksums |
fddde9b72ae356940e37cce81ff4e5be7a2ca29c4efbd9c4997ee508e78a2221
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / refkit_core-0.0.3-cp311-abi3-win_amd64.whl
| Download URL | refkit_core-0.0.3-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
dbc6f53140e7ba5234935ff83f59dee78832a8acf8876bf537f9332415776cb8
|
|
BLAKE2b-256 checksum How to use checksums |
796f48305951ab01271e906752a6d973589897a425f98a5ea38f59986cec4524
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / refkit_core-0.0.3-cp311-abi3-pyemscripten_2026_0_wasm32.whl
| Download URL | refkit_core-0.0.3-cp311-abi3-pyemscripten_2026_0_wasm32.whl |
|---|---|
| Size | 1.9 MB |
| Tags | CPython 3.11 PyEmscripten 2026.0+ WebAssembly abi3 |
|
SHA-256 checksum How to use checksums |
c839d161038ffb159bf05d7e9856d3fa24f32693dfe7f36c7be0e24634beac15
|
|
BLAKE2b-256 checksum How to use checksums |
80f3d89a29d46f93469c1d41e2fc9beca9fc428e2b18790d5bd5a2b6d3995a74
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / refkit_core-0.0.3-cp311-abi3-manylinux_2_34_x86_64.whl
| Download URL | refkit_core-0.0.3-cp311-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
c2f4771ff7d5d20edbc35836d1d5ccf837c5ac382a1da36de6f80ee7702a9e00
|
|
BLAKE2b-256 checksum How to use checksums |
42630c055901605d6b878097da4cc842cac5fdb87b50ccab9ad0af28d5d89ee5
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / refkit_core-0.0.3-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | refkit_core-0.0.3-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.6 MB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
06c5426e5b8f26bbd4671c096f3d9a3572ddfd18192fb1908ff837d4c005b3b9
|
|
BLAKE2b-256 checksum How to use checksums |
37cdd449a9aa77cefcfa3b1197b8e4d8f2ac5cefd21a0a9048226c548d01c9b0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.11.28 {"installer":{"name":"uv","version":"0.11.28","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|