Skip to main content

NovaSVG

NovaSVG Logo

License: MIT C++17 CMake codecov single header file-novasvg.h

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 the feDropShadow shorthand, with real in/in2/result chaining (SourceGraphic/SourceAlpha included) — chain primitives together to build custom effects, not just apply one at a time
  • CSS transform: property – both the SVG transform= attribute and the CSS transform: property (set via style=/a stylesheet class, including deg/rad/grad/turn units) 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, CSS color/background-color from the HTML's own style=/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 — see COMPARISON.md for a from-scratch, empirical comparison. Full HTML/CSS layout (nested block layout, inline flow) is out of scope; see checklist.md.

Font matching

  • Real OS font substitution (fontconfig on Linux) – a font-family stack 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 as fonts-liberation (Arial/Times/Courier-compatible metrics) on the system running novasvg. Detected automatically via __has_include() in font.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 a font-family and 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 documents
  • renderToBitmap() – Render to bitmap with optional dimensions
  • querySelectorAll() – Find elements using CSS selectors
  • applyStyleSheet() – Apply CSS styles
  • width() / height() – Get document dimensions
  • boundingBox() – Get document bounding box

Bitmap

  • writeToPng() – Save as PNG file or stream
  • data() – Access raw pixel data (ARGB32 Premultiplied)
  • width() / height() / stride() – Get bitmap properties
  • convertToRGBA() – Convert to RGBA format

Element

  • hasAttribute() / getAttribute() / setAttribute() – Manage element attributes
  • render() – Render element to bitmap
  • getLocalBoundingBox() / getGlobalBoundingBox() – Get element bounds
  • getLocalMatrix() / getGlobalMatrix() – Get transformation matrices

Matrix

  • translate() / scale() / rotate() / shear() – Transformation operations
  • inverse() – 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 PNGs
  • examples/cpp/sample02_query_svg_size.cpp – Query document properties

🎯 Use Cases

  1. Graphics Applications – Embed SVG rendering in C++ applications
  2. Web Development – Server-side SVG processing and optimization
  3. Game Development – Load vector graphics for UI elements
  4. Desktop Applications – Display vector graphics in GUI applications
  5. 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.

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. 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


NovaSVG – A new star in lightweight SVG processing

Metadata

Release files for novasvg 0.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for novasvg 0.7.0
File Size Uploaded
novasvg-0.7.0.tar.gz 3.7 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for novasvg 0.7.0
File
novasvg-0.7.0-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
novasvg-0.7.0-cp312-cp312-win32.whl CPython 3.12 CPython 3.12 Windows x86-32 Details
novasvg-0.7.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details
novasvg-0.7.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.7.0-cp312-cp312-macosx_10_15_universal2.whl CPython 3.12 CPython 3.12 macOS 10.15+ universal2 (ARM64, x86-64) Details
novasvg-0.7.0-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
novasvg-0.7.0-cp311-cp311-win32.whl CPython 3.11 CPython 3.11 Windows x86-32 Details
novasvg-0.7.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details
novasvg-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
novasvg-0.7.0-cp311-cp311-macosx_10_15_universal2.whl CPython 3.11 CPython 3.11 macOS 10.15+ universal2 (ARM64, x86-64) Details
novasvg-0.7.0-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
novasvg-0.7.0-cp310-cp310-win32.whl CPython 3.10 CPython 3.10 Windows x86-32 Details
novasvg-0.7.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details
novasvg-0.7.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.7.0-cp310-cp310-macosx_10_15_universal2.whl CPython 3.10 CPython 3.10 macOS 10.15+ universal2 (ARM64, x86-64) Details
novasvg-0.7.0-cp39-cp39-win_amd64.whl CPython 3.9 CPython 3.9 Windows x86-64 Details
novasvg-0.7.0-cp39-cp39-win32.whl CPython 3.9 CPython 3.9 Windows x86-32 Details
novasvg-0.7.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details
novasvg-0.7.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.7.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.7.0.tar.gz

Download URL novasvg-0.7.0.tar.gz
Size 3.7 MB
Tags Source
SHA-256 checksum
How to use checksums
5cd3423194ad836ffa6d166d7ab38e9cbdba29551a46bcc79a3195792745b5ea
BLAKE2b-256 checksum
How to use checksums
8f6a36009ce94d0b428990b09dda01e3cdc222aa272d59577e40b65f2b2cef49
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.7.0-cp312-cp312-win_amd64.whl

Download URL novasvg-0.7.0-cp312-cp312-win_amd64.whl
Size 693.8 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
dc35f2d4df03bd737098605686a76f114ca940011724d9be563ef579085cc954
BLAKE2b-256 checksum
How to use checksums
7ee57d5b1ae8bfd420a0e712ec10f83e9d099a4dbe185391e4ee7aad4a4713c5
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.7.0-cp312-cp312-win32.whl

Download URL novasvg-0.7.0-cp312-cp312-win32.whl
Size 611.0 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
c7254640b872062dc7501add46831fa9dea45fc81922d1e867523e2c3777478a
BLAKE2b-256 checksum
How to use checksums
afd77d7f655817f06fbae70c7c4cf5ed7aef62f88c15958c64db6f757529361b
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.7.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL novasvg-0.7.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
8776ff8d8948be9129236b630fd88c08ac41853c2586962d220d4aa5de5acaa7
BLAKE2b-256 checksum
How to use checksums
fc8e99c356cdbeb0ed3ef1719d7ec8e20ad536db35ffadb294d2964a17b27f3a
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.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL novasvg-0.7.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 798.8 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
16610dd64023e4c41d02d04dc84aebf3e6be8e1312988df9e7efb11951d8f1dd
BLAKE2b-256 checksum
How to use checksums
ba909fb49eef5955a544b81637059a77533e48f70a61ef8da6ca7553655080da
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.7.0-cp312-cp312-macosx_10_15_universal2.whl

Download URL novasvg-0.7.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
a6507f11b738016dc2d6f25e9aba265a96ad2504e7a846c5a9ce1e596e75ef82
BLAKE2b-256 checksum
How to use checksums
bc051e6e7205f0256620b173441762910e3749eb1f2d1cc5c380557bd29ea9bc
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.7.0-cp311-cp311-win_amd64.whl

Download URL novasvg-0.7.0-cp311-cp311-win_amd64.whl
Size 693.5 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
dcabbf2c2b9f51fc09152977ae9ef8521068f13c4ed64b4286085be82b7056d4
BLAKE2b-256 checksum
How to use checksums
0211436af94ad3fa8e8ef01af2b2184c55478a64ca7364e8984baa7c79780a27
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.7.0-cp311-cp311-win32.whl

Download URL novasvg-0.7.0-cp311-cp311-win32.whl
Size 611.2 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
04f1bb0def09c2c16395c05143a2ee7afcb09af2abe248f88788c7e6c8d50cd8
BLAKE2b-256 checksum
How to use checksums
0cfd8138ff05282b259abba7bac73e850e12bde87d4ce26f4e2b36aff98c7be7
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.7.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL novasvg-0.7.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
40ed9911ada2b46a47762ba094386d2225671946e5eabea9d919f6fb1bcac542
BLAKE2b-256 checksum
How to use checksums
96cc9e4df1b849bf09a58acaec3dd803045c3274e69eb7e2cbb91cbdeb962a09
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.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL novasvg-0.7.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 799.2 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
85206849ff6f335fcc075ecf27d1298c27888204bbb8446f6843b88a01808cd9
BLAKE2b-256 checksum
How to use checksums
abca26426a625262f0dc66a3e6c2c9fb398c41df4ccc678ec0555a28cacd2f06
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.7.0-cp311-cp311-macosx_10_15_universal2.whl

Download URL novasvg-0.7.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
02486096420b3154fef44b35ec67ebd1255cbbe9c7c6d59557586d9f66222e0a
BLAKE2b-256 checksum
How to use checksums
e708e9199bdf737410c77b33abd8e9f2a844043b0e531dacb057356c445460fa
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.7.0-cp310-cp310-win_amd64.whl

Download URL novasvg-0.7.0-cp310-cp310-win_amd64.whl
Size 693.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e5046c767ec47b6171bef1a53f17c5ce8423a59d5c2d72b3e429987d7dccacf1
BLAKE2b-256 checksum
How to use checksums
cbcb6a69428f67abc7424afe8e698e4f07a7cf5efdfcb9f64a16d756d6329dff
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.7.0-cp310-cp310-win32.whl

Download URL novasvg-0.7.0-cp310-cp310-win32.whl
Size 611.0 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
763ea7965a9bd36307035fb1393908b79fa0de43e5f172fd58625769455ad952
BLAKE2b-256 checksum
How to use checksums
9e062cbabd02353aa515c4a1941690d7a62722da6e9c07378a9c73468f1152fb
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.7.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL novasvg-0.7.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
561a46fd8eece5e03a07f6b259b71b0c229b5a56b68e197abb15a79ffa175d28
BLAKE2b-256 checksum
How to use checksums
eeeadf637f8061b3dc6a69598b20d8399efc0f5a36fcb9110a476d33e6c03741
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.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL novasvg-0.7.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 799.5 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fadfe606cb57d64d7671dc0dafdd3854ae60ddc7e29527f2ca6cfcc9b23c86b5
BLAKE2b-256 checksum
How to use checksums
a26883aa57d0c22c98ace60665883c847eb0aa60fc644b0113bb9056a8a7b723
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.7.0-cp310-cp310-macosx_10_15_universal2.whl

Download URL novasvg-0.7.0-cp310-cp310-macosx_10_15_universal2.whl
Size 1.4 MB
Tags CPython 3.10 macOS 10.15+ universal2 (ARM64, x86-64)
SHA-256 checksum
How to use checksums
7e268aa4c1a88ad0687606f8101e0f440382200dbed41c6bcc8785eaa145a91e
BLAKE2b-256 checksum
How to use checksums
5736f7e708895773b0b934c30d7096b0554658df13a2ae16d34237e5e72f2855
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.7.0-cp39-cp39-win_amd64.whl

Download URL novasvg-0.7.0-cp39-cp39-win_amd64.whl
Size 671.2 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
8f637862bdc62745363d399bcd5877201cecb8475ce4c34ca98dbb44d37d80f5
BLAKE2b-256 checksum
How to use checksums
5ea2fa0c5a6a56620edc3204f3b0dea7538a94e2666bc7e7b9c24190c9c302a8
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.7.0-cp39-cp39-win32.whl

Download URL novasvg-0.7.0-cp39-cp39-win32.whl
Size 591.1 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
da2a5915818ae0f45c5f9fd356a6ecabbbcc2e3e060a4cafda1821220b07bf43
BLAKE2b-256 checksum
How to use checksums
4d97ba1ec37d32dd736c434260e920b1f8c9c9d22e0aec02e6d03c481ef5c884
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.7.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL novasvg-0.7.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
a4781cbfb5a826a0f7e67f320c2369e83997d66c474e7c569655cfcd6a9c7eff
BLAKE2b-256 checksum
How to use checksums
dda4833696d8a43877b8303b86b7b2eb1adb8dc2f6d3a2bf3dfadfa05b38dfaa
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.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL novasvg-0.7.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 792.2 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
9c73e955290f50987f7380483377a33bcac9a37ca185305773446d3e522e24e4
BLAKE2b-256 checksum
How to use checksums
373058359cb1d191e0d55045fea620a8503787aed5a226059913b9cd16275364
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.7.0-cp39-cp39-macosx_10_15_universal2.whl

Download URL novasvg-0.7.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
fa7067c84f0d8cbce9a9c8efabb8ff197fafa26084fca9a4b87758ee8dffe0b4
BLAKE2b-256 checksum
How to use checksums
f367709c237c1e6e7c77d91666100c5d401934383472ff24e735384e916e108e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.9.0

21 release files

0.7.2

21 release files

0.7.1

21 release files

This release

0.7.0 This release

21 release files

0.6.0

21 release files

0.5.0

21 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page