NovaSVG
NovaSVG is a lightweight, header-only C++17 library for parsing, manipulating, and rasterizing SVG files. It provides a clean, modern API for loading SVG documents, querying elements, applying CSS styles, and rendering to bitmaps or PNG files—all from a single include.
The library also offers a command-line interface for batch processing and automation.
✨ Features
Core Library
- Header-only design – Single include file for easy integration
- Modern C++17 API – Clean, type-safe interface with RAII semantics
- SVG parsing – Load from files, strings, or memory buffers
- Rasterization – Render to bitmaps with customizable dimensions and backgrounds
- Element querying – CSS selector support for finding elements
- CSS application – Apply stylesheets to modify SVG appearance
- Transformation support – Matrix operations for scaling, rotation, translation
- Font management – Add custom fonts for text rendering
- Cross-platform – Works on Windows, Linux, and macOS
Command-Line Interface
- SVG to PNG conversion – Batch convert with customizable dimensions
- SVG information – Extract metadata, bounding boxes, and element counts
- CSS querying – Find elements using CSS selectors
- Style application – Apply CSS stylesheets to SVG documents
SVG Filters
- Full filter-primitive pipeline –
feGaussianBlur,feOffset,feFlood,feComposite(Over/In/Out/Atop/Xor),feMerge/feMergeNode, and thefeDropShadowshorthand, with realin/in2/resultchaining (SourceGraphic/SourceAlphaincluded) — chain primitives together to build custom effects, not just apply one at a time - CSS
transform:property – both the SVGtransform=attribute and the CSStransform:property (set viastyle=/a stylesheet class, includingdeg/rad/grad/turnunits) are supported
<foreignObject> / HTML-in-SVG text
- Plain-text extraction with real word-wrap – renders the text
content of HTML embedded in
<foreignObject>(tags stripped, CSScolor/background-colorfrom the HTML's ownstyle=/class=respected, forced line breaks at<br>/<p>/<div>boundaries further greedy-wrapped by width) rather than skipping it entirely. This is what diagram tools like Mermaid.js rely on for every node/edge label; most other lightweight SVG renderers (resvg, lunasvg, cairosvg) currently render these as blank boxes — seeCOMPARISON.mdfor a from-scratch, empirical comparison. Full HTML/CSS layout (nested block layout, inline flow) is out of scope; seechecklist.md.
Font matching
- Real OS font substitution (fontconfig on Linux) – a
font-familystack like"trebuchet ms", verdana, arial, sans-serif(what Mermaid.js itself emits) is resolved through fontconfig's own alias/substitution system when available, not just novasvg's built-in raw font-file scan. For best text-metric fidelity with content generated by browser-based tools, install a metric-compatible font family such asfonts-liberation(Arial/Times/Courier-compatible metrics) on the system running novasvg. Detected automatically via__has_include()infont.h— no define needs to be passed in from CMake or any other build system, so a header-only consumer who never touches this repo's CMakeLists.txt gets it too, as long as their own build links-lfontconfig(this project's own CMakeLists.txt does that for you). No fontconfig-dev installed at compile time (normal on Windows/macOS, and possible in a minimal Linux container) degrades gracefully to the previous raw-font-file-scan behavior, with a one-line compiler notice explaining why. @font-face-embedded fonts (raw TTF/OTF) – an SVG that embeds its own font via@font-face { src: url(data:font/ttf;base64,...) }(as opposed to just naming afont-familyand hoping the system has it) gets that font loaded and used under its declared family name. WOFF/ WOFF2 aren't decoded yet — only raw TrueType/OpenType payloads.
🚀 Quick Start
C++ Usage
#include <novasvg/novasvg.h>
int main() {
// Load SVG from file
auto doc = novasvg::Document::loadFromFile("artwork.svg");
if (doc) {
// Render to bitmap (auto-sized)
auto bitmap = doc->renderToBitmap();
// Save as PNG
bitmap.writeToPng("artwork.png");
// Query elements
auto rectangles = doc->querySelectorAll("rect");
std::cout << "Found " << rectangles.size() << " rectangles\n";
// Get document dimensions
std::cout << "Size: " << doc->width() << "x" << doc->height() << "\n";
}
return 0;
}
Command-Line Usage
cmake -B build && cmake --build build
./build/novasvg input.svg # convert is implied, no need to type it
./build/novasvg input.svg -o output.png -w 800 -H 600
See the "CLI Reference" section below for the full option list.
📦 Installation
C++ Library
As Header-Only Library
Copy the include/novasvg/ directory into your project (or grab the
single-header novasvg.h from the
latest release) and
#include <novasvg/novasvg.h>. Every function is marked inline, so
there's no separate implementation file to define a macro for — that
used to be required via a detail/novasvg_impl.h + #define NOVASVG_IMPLEMENTATION, but that split no longer exists; the whole
library is safe to #include from any number of translation units as-is.
Building from Source
git clone https://github.com/MohammadRaziei/novasvg.git
cd novasvg
mkdir build && cd build
cmake .. -DNOVASVG_BUILD_EXAMPLES=ON
make -j4
Command-Line Tool
The novasvg target builds automatically as part of the project (no
separate flag needed) — after the build above, the binary is at
build/novasvg:
sudo make install # Optional: install system-wide
📚 API Overview
Core Classes
Document
loadFromFile()/loadFromData()– Load SVG documentsrenderToBitmap()– Render to bitmap with optional dimensionsquerySelectorAll()– Find elements using CSS selectorsapplyStyleSheet()– Apply CSS styleswidth()/height()– Get document dimensionsboundingBox()– Get document bounding box
Bitmap
writeToPng()– Save as PNG file or streamdata()– Access raw pixel data (ARGB32 Premultiplied)width()/height()/stride()– Get bitmap propertiesconvertToRGBA()– Convert to RGBA format
Element
hasAttribute()/getAttribute()/setAttribute()– Manage element attributesrender()– Render element to bitmapgetLocalBoundingBox()/getGlobalBoundingBox()– Get element boundsgetLocalMatrix()/getGlobalMatrix()– Get transformation matrices
Matrix
translate()/scale()/rotate()/shear()– Transformation operationsinverse()– Matrix inversion- Operator
*– Matrix multiplication
🖥️ CLI Reference
# Convert -- the default action, no subcommand keyword needed
# (an explicit "convert" subcommand works identically, if you prefer it)
novasvg input.svg
novasvg convert input.svg -o output.png
novasvg input.svg -w 800 -H 600 # resize
novasvg input.svg -s 2.0 # scale factor
novasvg input.svg -b FFFFFF # background color (hex)
novasvg input.svg --style "rect { fill: red; }"
novasvg input.svg --css-file custom.css
# Info / query / batch -- real subcommands for the other actions
novasvg info document.svg
novasvg info document.svg --json
novasvg query "circle" shapes.svg
novasvg query "rect[fill='red']" shapes.svg --json
novasvg batch svg_dir/ png_dir/
| Option | Description |
|---|---|
-o, --output <file> |
Output PNG file (default: input name with .png) |
-w, --width <px> / -H, --height <px> |
Output dimensions |
-s, --scale <factor> |
Scale factor (e.g. 2.0) |
-b, --background-color <hex> |
RRGGBB or RRGGBBAA (default: transparent) |
--style <css> / --css-file <file> |
Apply CSS before rendering |
Run novasvg --help or novasvg <subcommand> --help for the complete,
always-up-to-date option list.
🔧 Build Options
| Option | Description | Default |
|---|---|---|
NOVASVG_BUILD_EXAMPLES |
Build C++ examples | PROJECT_IS_TOP_LEVEL |
NOVASVG_BUILD_TESTS |
Build unit tests | PROJECT_IS_TOP_LEVEL |
NOVASVG_BUILD_PYTHON |
Build Python bindings | PROJECT_IS_TOP_LEVEL |
NOVASVG_BUILD_DOCS |
Build documentation with Doxygen | OFF |
NOVASVG_DIST_DIR |
Generate single-header distribution | Not defined |
The novasvg command-line tool itself has no build flag — it's built
unconditionally alongside the library. Converting is the implied default
action (novasvg input.svg works with no subcommand needed).
🧪 Examples
C++ Examples
examples/cpp/sample01_convert_svg_to_png.cpp– Batch convert SVGs to PNGsexamples/cpp/sample02_query_svg_size.cpp– Query document properties
🎯 Use Cases
- Graphics Applications – Embed SVG rendering in C++ applications
- Web Development – Server-side SVG processing and optimization
- Game Development – Load vector graphics for UI elements
- Desktop Applications – Display vector graphics in GUI applications
- Automation – Batch convert SVG assets with CLI tool
🔍 Performance Considerations
- Memory efficient – Minimal overhead for header-only design
- Fast rasterization – Optimized rendering pipeline
- Reusable bitmaps – Create once, render multiple times
- Appropriate sizing – Render at required resolution, not larger
- Batch operations – Process multiple SVGs efficiently
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
📄 License
NovaSVG is distributed under the MIT License. See LICENSE.txt for details.
📖 Documentation
- API Reference: Built with Doxygen (enable with
-DNOVASVG_BUILD_DOCS=ON) - Online Documentation: https://mohammadraziei.github.io/novasvg
- Examples: See
examples/directory - CLI Documentation: See the "CLI Reference" section above
- Renderer comparison:
COMPARISON.md— an empirical, same-input comparison against resvg/lunasvg/cairosvg/thorvg (filters, CSS transforms, foreignObject text handling) - Known gaps / roadmap:
checklist.md— what's fixed, what's intentionally out of scope and why, and optimization notes for anything that's currently correct-but-not-fast
🙏 Acknowledgments
NovaSVG builds upon ideas from existing SVG libraries while maintaining a distinct architectural philosophy focused on minimalism and header-only design.
📞 Support
- GitHub Issues: https://github.com/MohammadRaziei/novasvg/issues
- Documentation: https://mohammadraziei.github.io/novasvg
Release files for novasvg 0.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| novasvg-0.6.0.tar.gz | 3.7 MB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| novasvg-0.6.0-cp312-cp312-win_amd64.whl | CPython 3.12 | CPython 3.12 | Windows x86-64 | Details |
| novasvg-0.6.0-cp312-cp312-win32.whl | CPython 3.12 | CPython 3.12 | Windows x86-32 | Details |
| novasvg-0.6.0-cp312-cp312-musllinux_1_2_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux musl 1.2+ x86-64 | Details |
| novasvg-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| novasvg-0.6.0-cp312-cp312-macosx_10_15_universal2.whl | CPython 3.12 | CPython 3.12 | macOS 10.15+ universal2 (ARM64, x86-64) | Details |
| novasvg-0.6.0-cp311-cp311-win_amd64.whl | CPython 3.11 | CPython 3.11 | Windows x86-64 | Details |
| novasvg-0.6.0-cp311-cp311-win32.whl | CPython 3.11 | CPython 3.11 | Windows x86-32 | Details |
| novasvg-0.6.0-cp311-cp311-musllinux_1_2_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux musl 1.2+ x86-64 | Details |
| novasvg-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| novasvg-0.6.0-cp311-cp311-macosx_10_15_universal2.whl | CPython 3.11 | CPython 3.11 | macOS 10.15+ universal2 (ARM64, x86-64) | Details |
| novasvg-0.6.0-cp310-cp310-win_amd64.whl | CPython 3.10 | CPython 3.10 | Windows x86-64 | Details |
| novasvg-0.6.0-cp310-cp310-win32.whl | CPython 3.10 | CPython 3.10 | Windows x86-32 | Details |
| novasvg-0.6.0-cp310-cp310-musllinux_1_2_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux musl 1.2+ x86-64 | Details |
| novasvg-0.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| novasvg-0.6.0-cp310-cp310-macosx_10_15_universal2.whl | CPython 3.10 | CPython 3.10 | macOS 10.15+ universal2 (ARM64, x86-64) | Details |
| novasvg-0.6.0-cp39-cp39-win_amd64.whl | CPython 3.9 | CPython 3.9 | Windows x86-64 | Details |
| novasvg-0.6.0-cp39-cp39-win32.whl | CPython 3.9 | CPython 3.9 | Windows x86-32 | Details |
| novasvg-0.6.0-cp39-cp39-musllinux_1_2_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux musl 1.2+ x86-64 | Details |
| novasvg-0.6.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.28+ x86-64, Linux glibc 2.27+ x86-64 | Details |
| novasvg-0.6.0-cp39-cp39-macosx_10_15_universal2.whl | CPython 3.9 | CPython 3.9 | macOS 10.15+ universal2 (ARM64, x86-64) | Details |
Total release size: 26.5 MB
Release files / novasvg-0.6.0.tar.gz
| Download URL | novasvg-0.6.0.tar.gz |
|---|---|
| Size | 3.7 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
78e2cfa8f68437202d206a58b7a5f7fe13636415f8cd37150086e1834cb244b5
|
|
BLAKE2b-256 checksum How to use checksums |
f0911ea2bedd92bbc6b08d225e2b8efe2e8ebe3cc6885b6b66c7c4a31e6e5e11
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp312-cp312-win_amd64.whl
| Download URL | novasvg-0.6.0-cp312-cp312-win_amd64.whl |
|---|---|
| Size | 692.2 kB |
| Tags | CPython 3.12 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
417eb47af9ed81a6a4216aa0a62fc453ddd559f0057e435e5379319c616572d7
|
|
BLAKE2b-256 checksum How to use checksums |
2b40390187ee94f4c809479726cabede3ebdf89722838f966a475b37aa83cf52
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp312-cp312-win32.whl
| Download URL | novasvg-0.6.0-cp312-cp312-win32.whl |
|---|---|
| Size | 609.4 kB |
| Tags | CPython 3.12 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
4b29b216526354a248df8c087a9f01593ff35a8b71cb0f3621264341a7cbdb19
|
|
BLAKE2b-256 checksum How to use checksums |
e909575c8f6d4d6e88fe6966e2e782a1d6d3b0def16d6f336f71819d9558d4b9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp312-cp312-musllinux_1_2_x86_64.whl
| Download URL | novasvg-0.6.0-cp312-cp312-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.12 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
8bbd926536a16c3b3d0b911cdb7f7f0af3f01e8686c054291a28fa02b37fbe73
|
|
BLAKE2b-256 checksum How to use checksums |
fbbe58e14542ea8bf99f0e8a4f4e7e5fde57b17d2ae9cca4453e7b742ba486ab
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | novasvg-0.6.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 797.3 kB |
| Tags | CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
93b4302f9d7dd83d216047dc07931b1310cf18d71ea499ff1cbeb144ae98989f
|
|
BLAKE2b-256 checksum How to use checksums |
661bad83f0cf8bb99c52d005d9baf36c22d03f42035ec13b789b669e974492a0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp312-cp312-macosx_10_15_universal2.whl
| Download URL | novasvg-0.6.0-cp312-cp312-macosx_10_15_universal2.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.12 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
a3b0f28610f3294b2ba86b85a3c95ae441a7d29f35929988b856bef39c6b0daa
|
|
BLAKE2b-256 checksum How to use checksums |
ddc7b7d872a4cc48cb23185f7bfcd60b9c9762a8a3ba9b926d17c823e2c13baa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp311-cp311-win_amd64.whl
| Download URL | novasvg-0.6.0-cp311-cp311-win_amd64.whl |
|---|---|
| Size | 692.0 kB |
| Tags | CPython 3.11 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
e49d2226abcb485a90ad295a5547393025eaff1227aa4e712cabac5c2a3c6375
|
|
BLAKE2b-256 checksum How to use checksums |
37377b71576ec2d669ed4f79f445dfef84130123e8503b4eb0b10517c91267e7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp311-cp311-win32.whl
| Download URL | novasvg-0.6.0-cp311-cp311-win32.whl |
|---|---|
| Size | 609.7 kB |
| Tags | CPython 3.11 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
8f3ddc9c41249cb468fff1257d5cb5134b71f650732b0231d60d605b565f5f24
|
|
BLAKE2b-256 checksum How to use checksums |
e324b591e9ba87deb5e9b3354fab5dbecc6843e04a7cbfe3510b760df45dd6a8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp311-cp311-musllinux_1_2_x86_64.whl
| Download URL | novasvg-0.6.0-cp311-cp311-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.11 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
4493f27d06a5218d2c3be1f2f6253c2a9900c17cec9b0c0a7514e3b8b2880fc8
|
|
BLAKE2b-256 checksum How to use checksums |
9d487a0c88f47a3ad9e8a92887d324a38fb034acd065fee769924a17491ae504
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | novasvg-0.6.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 797.5 kB |
| Tags | CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
302359f68d6cca541f5e0d9b05e8ccc0342bce4919e5ec418d9b8c0dbf6820c0
|
|
BLAKE2b-256 checksum How to use checksums |
1258ce8e89f8ca5ef4587266e15ade82e3488ef00718ecd40f4e7b100c9c0c73
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp311-cp311-macosx_10_15_universal2.whl
| Download URL | novasvg-0.6.0-cp311-cp311-macosx_10_15_universal2.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.11 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
fad11944d6b0ab7f656b179340aa8afabcb8a8eb9c04403626f82f4f4700ff45
|
|
BLAKE2b-256 checksum How to use checksums |
6e4a6b44a7021b0ce2871be609ec97c7aefe3290d923fc3f5f517b143cb5024a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp310-cp310-win_amd64.whl
| Download URL | novasvg-0.6.0-cp310-cp310-win_amd64.whl |
|---|---|
| Size | 691.4 kB |
| Tags | CPython 3.10 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
af1808e69a7f8dbe341cf623cb2a82e3dd1f06d4dffa7723951bc5982068a5b5
|
|
BLAKE2b-256 checksum How to use checksums |
aaa54e16b9d7c51861a61570a5cb7b53a45d1ab3a5ea15f4ddba054db06631a7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp310-cp310-win32.whl
| Download URL | novasvg-0.6.0-cp310-cp310-win32.whl |
|---|---|
| Size | 609.6 kB |
| Tags | CPython 3.10 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
d83b10a352536d6add2c1a396c9b4b89689e6a5bfe488171b392ab7837539346
|
|
BLAKE2b-256 checksum How to use checksums |
ad014bd58d2d9fcd5acfdcca3ea557665c61e8359e5308ef906c44e34c242318
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp310-cp310-musllinux_1_2_x86_64.whl
| Download URL | novasvg-0.6.0-cp310-cp310-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.10 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
d3b19910486db908e53a264bf54fa3da0c54ca6c145702a3dab69f299467f44c
|
|
BLAKE2b-256 checksum How to use checksums |
7f349fedad787bb535c1797734e22c6fd9e22bd4f462f0ab6c355809a625a0d4
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | novasvg-0.6.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 797.8 kB |
| Tags | CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
bd57ad8c14ef99a3e7803b690383d3dae4ece947e1810b1569e6017bc3e1e66e
|
|
BLAKE2b-256 checksum How to use checksums |
ee3e11ab7f8b297ff60f97cf1d4ebe546c95e1c9f4f993305eb6ac809a44a7f9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp310-cp310-macosx_10_15_universal2.whl
| Download URL | novasvg-0.6.0-cp310-cp310-macosx_10_15_universal2.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.10 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
15791e8e4b9321019cd3565d224f6cbbba816f4d3285edc0ae39b81f98445609
|
|
BLAKE2b-256 checksum How to use checksums |
687dcd78ef840b0947faf932df942768e2768b06b73b9e2c40edd329a0e7dfca
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp39-cp39-win_amd64.whl
| Download URL | novasvg-0.6.0-cp39-cp39-win_amd64.whl |
|---|---|
| Size | 669.6 kB |
| Tags | CPython 3.9 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
7ebe794705a60dd49c42d80dbf10a12064127a9eaee0deae5c737af2ff73175b
|
|
BLAKE2b-256 checksum How to use checksums |
7de3c0ecf07713a96644cd73544f153c9e01fc95f919f27777011777de59a5d8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp39-cp39-win32.whl
| Download URL | novasvg-0.6.0-cp39-cp39-win32.whl |
|---|---|
| Size | 589.6 kB |
| Tags | CPython 3.9 Windows x86-32 |
|
SHA-256 checksum How to use checksums |
c187336c4df6eed8f84638e33dbe0fcc77078daf355aefdd84e87b592e72830e
|
|
BLAKE2b-256 checksum How to use checksums |
98d143cde941e8afa55ad040c46a29d62420bf1ac4cbb3d427c95dfa3932a981
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp39-cp39-musllinux_1_2_x86_64.whl
| Download URL | novasvg-0.6.0-cp39-cp39-musllinux_1_2_x86_64.whl |
|---|---|
| Size | 2.3 MB |
| Tags | CPython 3.9 Linux musl 1.2+ x86-64 |
|
SHA-256 checksum How to use checksums |
f3a9a090da1e08b2fb779ff684610032a00fd030d0acd17b8c53159e333f766c
|
|
BLAKE2b-256 checksum How to use checksums |
a29426a1722bd917c8885aebca78b526d72675f0e79881e600b4f89af02bedd1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
| Download URL | novasvg-0.6.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl |
|---|---|
| Size | 790.6 kB |
| Tags | CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64 |
|
SHA-256 checksum How to use checksums |
fb11de23d4af108cd0dadbe4b895b7f5d0223ad8beb3e68e85383f36ea8016c4
|
|
BLAKE2b-256 checksum How to use checksums |
223b7448762cc370b1aab1f3e207a8395e982cdce8de1f3d3b727577e09fd0bf
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Release files / novasvg-0.6.0-cp39-cp39-macosx_10_15_universal2.whl
| Download URL | novasvg-0.6.0-cp39-cp39-macosx_10_15_universal2.whl |
|---|---|
| Size | 1.3 MB |
| Tags | CPython 3.9 macOS 10.15+ universal2 (ARM64, x86-64) |
|
SHA-256 checksum How to use checksums |
46968f3ff5025d494835f152b5b9aeafd8e8f7b190e3584bf6ecfde2d6ee2b9e
|
|
BLAKE2b-256 checksum How to use checksums |
20ce5ae8a9b439e0db17b78e72ee570e83a9cb0e030f5abbcb6a3b4b0f1c6a2a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|