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

Release files for novasvg 0.5.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.5.0
File Size Uploaded
novasvg-0.5.0.tar.gz 2.3 MB Details

Built distributions (wheels)

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

Release files / novasvg-0.5.0.tar.gz

Download URL novasvg-0.5.0.tar.gz
Size 2.3 MB
Tags Source
SHA-256 checksum
How to use checksums
ef7f933fdcb47460b5f3d18da37a34c601959779aa8898318903908b5d14e402
BLAKE2b-256 checksum
How to use checksums
ab473ff6b465162b2d426e18658990fb89ebd74fbed97cde0f83a3bb001b113a
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.5.0-cp312-cp312-win_amd64.whl

Download URL novasvg-0.5.0-cp312-cp312-win_amd64.whl
Size 680.6 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
0e2063714db1788e2a5cee6840935c84c81e6d6e09ebdf2493a4be81c484478a
BLAKE2b-256 checksum
How to use checksums
986508d35a2c1580bf6f5630eefd6fa51a1d84bb581e9c612c5c2b8a75566b64
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.5.0-cp312-cp312-win32.whl

Download URL novasvg-0.5.0-cp312-cp312-win32.whl
Size 600.3 kB
Tags CPython 3.12 Windows x86-32
SHA-256 checksum
How to use checksums
7c7a88c0e3358d7e76cae6bf57f04faad789d9fd5484fe1f9e7e1b1f8193785b
BLAKE2b-256 checksum
How to use checksums
ffbcd4993a5b0efbd1dced1e55ef594e5fde48fadde03584ba7f887b57babae1
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.5.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL novasvg-0.5.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
201f8e00f92e122fcb8bd3151983066d17faad3e2d8b1e34dd38d6705d2e7b96
BLAKE2b-256 checksum
How to use checksums
d381b50ae7b6ea9e6a73b7403392e44603369c02c0282b8f734f63ccc304d44c
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.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL novasvg-0.5.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 785.1 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
fd7fe15353b01d3bbb929052c31cc19f39013415d29e0d0506c26f3be17e9d9a
BLAKE2b-256 checksum
How to use checksums
b2326fc3fa294d26764f55b228e3ad38679525a595bfa7e7ebd96e4ea5cbeabb
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.5.0-cp312-cp312-macosx_10_15_universal2.whl

Download URL novasvg-0.5.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
2786b2dda21bf686adccf9ebdb45ae39635fefcf623115df289014acc2b3cf96
BLAKE2b-256 checksum
How to use checksums
8640a644fb50830586fad40aa991492f05b666ec0cba34fed92b6117fae08f86
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.5.0-cp311-cp311-win_amd64.whl

Download URL novasvg-0.5.0-cp311-cp311-win_amd64.whl
Size 680.6 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
4ac9f4a39215b65976517b78808e4122d1179446de32735f85cae397b39085c1
BLAKE2b-256 checksum
How to use checksums
11a8f66db666a245816355fb7a65b6fe9999391bae863e61b91cc8f0340c8b93
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.5.0-cp311-cp311-win32.whl

Download URL novasvg-0.5.0-cp311-cp311-win32.whl
Size 600.8 kB
Tags CPython 3.11 Windows x86-32
SHA-256 checksum
How to use checksums
163411df4af5a08154753e2cf999f34fccf9730a913c0615418fba0e2c6d7e42
BLAKE2b-256 checksum
How to use checksums
a628061e931cce8ea7046190e4cf8158f1f8e73c40441143cb5d50b9cc95f69b
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.5.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL novasvg-0.5.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
e6b98c3f4ec754fbadf090f43ff8ebae6a9c848c5fc5201a69e62659d9cda563
BLAKE2b-256 checksum
How to use checksums
19d6a356e13798cbbb036ac8fc5fad29e57a15790b3d20f48bc0986f912325ca
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.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL novasvg-0.5.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 785.6 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
5f629699e10d7021d3d120a21556573d196e2e69790d757e8e2012a7ec2435e5
BLAKE2b-256 checksum
How to use checksums
73017657bc6fd0b2b13e1702e4b63a1cb7e7f2b43ee7b91c801f5ae903b53d49
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.5.0-cp311-cp311-macosx_10_15_universal2.whl

Download URL novasvg-0.5.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
94612f2ef3fbe4ed87c653676ee91adeeea8e33a6eba857e0d37ee6dbb5638f9
BLAKE2b-256 checksum
How to use checksums
0da35f61f85cadb2556d7cdfd6b904b0ec2ab48a2cab817698bcdac3ad349ca7
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.5.0-cp310-cp310-win_amd64.whl

Download URL novasvg-0.5.0-cp310-cp310-win_amd64.whl
Size 680.2 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
e5fe376e697f072798583379ac8b7a89063cb0669399981e4f8ff7cfa4073281
BLAKE2b-256 checksum
How to use checksums
5d9e4d1cd9d8f99ec4e418b79e8cd7039a679cbb9e71986b61bca455e9342c3c
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.5.0-cp310-cp310-win32.whl

Download URL novasvg-0.5.0-cp310-cp310-win32.whl
Size 600.7 kB
Tags CPython 3.10 Windows x86-32
SHA-256 checksum
How to use checksums
58e972076b4d11fd5239dd60d14341277c2afee49cffde027a081c5191ea036e
BLAKE2b-256 checksum
How to use checksums
e19320f8682eeb82960f191f3d8a900e191148f0103ee82d7ce7e55bbbd34db5
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.5.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL novasvg-0.5.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
f8d5c327ed51b979e91d2aab36bb8e0bb6f4df11ef3d319d87485d6c2ff46ebe
BLAKE2b-256 checksum
How to use checksums
2f725dbd3f00525e8477dba6d5c37f0541e36613dd306aec9396f747d88de02b
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.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL novasvg-0.5.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 786.0 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
0cec9dc665bd770248326139a4d61ed826f3f172733f7a8f2c5992ea78375488
BLAKE2b-256 checksum
How to use checksums
ac736b437110294431330c267af87d1255aeea1c9ebfa6985b7193dd539bb67f
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.5.0-cp310-cp310-macosx_10_15_universal2.whl

Download URL novasvg-0.5.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
32fafd086a1c621f7c57e2651493159a5fa5e265e7e05b820422e508cf338569
BLAKE2b-256 checksum
How to use checksums
270090c92c10dea9ac5cf27b043a7eab06d57220ccd6cae934e1a4bd1974ae21
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.5.0-cp39-cp39-win_amd64.whl

Download URL novasvg-0.5.0-cp39-cp39-win_amd64.whl
Size 658.3 kB
Tags CPython 3.9 Windows x86-64
SHA-256 checksum
How to use checksums
6e3b29d9e309de01952002d2cb43b6d57e49197c57abd21e1fc3b5f470d5eae7
BLAKE2b-256 checksum
How to use checksums
024eb2db1d9908041b3782a03f4146f670795ee1bc1f65703ac4cc553ed3e775
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.5.0-cp39-cp39-win32.whl

Download URL novasvg-0.5.0-cp39-cp39-win32.whl
Size 580.6 kB
Tags CPython 3.9 Windows x86-32
SHA-256 checksum
How to use checksums
dca04e9d92ca11f60eb6b620b38df7d5935cb27acb784b1edaf41f729d589148
BLAKE2b-256 checksum
How to use checksums
2710e543904827132819822ce78548841aeb6ffa34f59e97f26add072b08c5f2
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.5.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL novasvg-0.5.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 2.2 MB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
eadec5ab43e3565d66a496c6ba0d508427108a6a05147a5a997bfb494c11a2d1
BLAKE2b-256 checksum
How to use checksums
d8e83210846f4319c172d5f1e509b9d351c80dbd2a6cf1bb2d420c33747081d0
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.5.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL novasvg-0.5.0-cp39-cp39-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 779.0 kB
Tags CPython 3.9 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e62f9defd55f4a3e659268f5bbcb1e6896398e3d8375e13d7a734048136fa519
BLAKE2b-256 checksum
How to use checksums
810786085a0fa95681b0414f1c0bb5a4a59c0bf71b4d6474b3affeab83ba7ccf
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.5.0-cp39-cp39-macosx_10_15_universal2.whl

Download URL novasvg-0.5.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
fd52de6f2de3112dff574ae926cfb443216737d5efb007ec0168cda8f3d2b3d0
BLAKE2b-256 checksum
How to use checksums
53b0e2c446ae1346efd90296d138779c55d0da040964161758324ea565b92294
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.6.0

21 release files

This release

0.5.0 This release

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