NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
PyPI · #1021 most downloaded on PyPI
A Simple SVG Converter based on Cairo
Last release 27 days ago
07 Sep 2026
Release timing varies
gaps range from 3 weeks to 1.9 years
Nearly every release is documented
notes for 60 of the last 60 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
67 releases · first in 2011
WARNING : this is a security update.
WARNING: this is a security update.
Specially crafted SVGs with very long paths could lead to exponential rendering times.
WARNING: this is a security update.
WARNING: this is a security update.
Using a lot of recursively nested use tags could lead to long rendering times with relatively small inputs.
CairoSVG now stops rendering when more than 100k use tags are rendered.
Using the --unsafe option allows to render larger documents.
One column per quarter.
Allow both Unicode strings and bytes as input
Allow both text- and bytes-based file objects as input
Drop support of Python 3.7 and 3.8, add support of Python 3.12 and 3.13
Don’t draw clipPath when defined after reference
WARNING: this is a security update.
WARNING: this is a security update.
When processing SVG files, CairoSVG could access other files online, possibly leading to very long renderings or other security problems.
This feature is now disabled by default. External resources can still be accessed using the "unsafe" or the "url_fetcher" parameter.
Fix various deprecation warnings
Fix marker path scale
When processing SVG files, CairoSVG was using two regular expressions which are vulnerable to Regular Expression Denial of Service (REDoS).
WARNING: this is a security update.
When processing SVG files, CairoSVG was using two regular expressions which are vulnerable to Regular Expression Denial of Service (REDoS).
If an attacker provided a malicious SVG, it could make CairoSVG get stuck processing the file for a very long time.
Other bug fixes:
Drop support of Python 3.5, add support of Python 3.9.
Fix scale for images with no viewBox
Allow href attributes with no namespace
Fix aspect and position when resizing root SVG tag
* Fix relative paths on Windows
Make text selectable on generated PDF files
* Fix packaging
Fix packaging
Fix T commands used with previous relative commands in paths
Fix T commands following q or t in paths
* Fix font-size
Fix font-size
Use http://www.w3.org/2000/svg as default namespace
Use cssselect2 and tinycss2 instead of cssselect and tinycss
Add python_requires in setup.py
python_requires in setup.pyHandle text-align in textPath tags
text-align in textPath tagsDon't crash on relative refs with no input URL
Rely on cairocffi, lxml, cssselect, pillow and tinycss
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Fix crash when lxml is not installed
CairoSVG was vulnerable to XML eXternal Entity (XXE) attacks, this release fixes this vulnerability by not resolving the XML entities anymore.
WARNING: this is a security update.
CairoSVG was vulnerable to XML eXternal Entity (XXE) attacks, this release fixes this vulnerability by not resolving the XML entities anymore.
The --unsafe option has been added to force the resolution of XML
entities. Obviously, this option is not safe and should only be used with
trusted SVG files.
Allow the user to give parent size.
Allow the user to give parent size.
Drastically improve the performance of Node()
Drastically improve the performance of Node()
Use cairo groups to apply filters
Use cairo groups to apply filters
Fix scale and position of markers
Fix scale and position of markers
Support the text-rendering property
Support the text-rendering property
Use xMidYMid as default preserveAspectRatio value
Use xMidYMid as default preserveAspectRatio value
Support the shape-rendering property
Support the shape-rendering property
* Fix end markers
Fix end markers
Don't crash when paths with markers end with a move_to action
Don't crash when paths with markers end with a move_to action
* Allow commas in viewboxes
Allow commas in viewboxes
* Allow quotes around font names
Allow quotes around font names
Don't crash when gradients are applied to paths
Don't crash when gradients are applied to paths
Don't create an atomic layer for transparent tags with no children
Don't create an atomic layer for transparent tags with no children
Fix scaling with negative viewBox origin
Fix scaling with negative viewBox origin
Automatically detect size and position of circles and ellipses for gradients
Fall back to pycairo if cairocffi is unable to find the cairo library
Fall back to pycairo if cairocffi is unable to find the cairo library
Don't inherit clip* and overflow properties
Don't inherit clip* and overflow properties
Don't transform the root svg tag according to the PreservAspectRatio attribute
Add simple support for alignment-baseline
Add cairocffi into setup.py deps
Clear relative coordinates when absolute coordinates are set in tspan tags
Clear relative coordinates when absolute coordinates are set in tspan tags
Don't draw an empty image when locale is not set
Fix clips and viewboxes
Don't draw an empty image when locale is not set
Don't crash when locale is not set
Don't crash when locale is not set
Get the xml_tree from the root parent when creating nodes from string
Don't crash when svg tag has no width or height
Don't crash when svg tag has no width or height
Support of more external CSS stylesheets
CairoCFFI support
Support of more external CSS stylesheets
Handle more filters
Use pillow instead of pystacia
Fix a lot of bugs with text (whitespaces, text on a path, etc.)
Inherit attributes in use tags
Cache trees for use tags
Handle conditional structures
Simple support of the image tag thanks to pystacia
Simple support of the image tag thanks to pystacia
Better tests with pystacia instead of pypng (~35% faster)
Handle s after C/S and S after c/s in paths
Handle rounded corners with 2 different radii for rectangles
Fix python 2.6 support
Fix markers with empty paths and z/Z points
Fix initial m in paths with no current point
Fix transformations order
Use a default font size of 12pt
Use a default font size of 12pt
Fix a bug about non-invertible matrices
Fix the installation for python 3 with LANG=C
Fix the version detection without cairo
Fix the version detection without cairo
Don't rely on cairo import to find the version
Don't rely on cairo import to find the version
* Use cssselect
Use cssselect
Your coding agent can read these notes before it upgrades. Set up the MCP server →