25 releases (14 breaking)
0.15.3 | Jan 20, 2025 |
---|---|
0.15.2 | Aug 20, 2024 |
0.15.1 | May 7, 2024 |
0.14.0 | Feb 5, 2024 |
0.1.1 | May 23, 2018 |
#74 in Parser implementations
269,866 downloads per month
Used in 435 crates
(28 directly)
195KB
4.5K
SLoC
Supported SVG types
<color>
<number>
<length>
<angle>
<viewBox>
<path>
<transform>
transform-origin
<list-of-numbers>
<list-of-lengths>
<list-of-points>
<filter-value-list>
<paint>
<preserveAspectRatio>
<enable-background>
<IRI>
<FuncIRI>
paint-order
<font-family>
font
Features
- Complete support of paths, so data like
M10-20A5.5.3-4 110-.1
will be parsed correctly. - Implicit path commands will be automatically converted into explicit one.
- Some SVG2 data types support.
- Pretty fast.
Limitations
- Accepts only normalized values, e.g. an input text should not contain
 
or&data;
. - All keywords must be lowercase. Case-insensitive parsing is supported only for colors (requires allocation for named colors).
- The
<color>
followed by the<icccolor>
is not supported. As the<icccolor>
itself. - System colors, like
fill="AppWorkspace"
, are not supported. They were deprecated anyway.
Safety
- The library should not panic. Any panic considered as a critical bug and should be reported.
- The library forbids unsafe code.
Alternatives
None.
Minimum supported Rust Version (MSRV)
This version of SVG Types has been verified to compile with Rust 1.65 and later.
Future versions of SVG Types might increase the Rust version requirement. It will not be treated as a breaking change and as such can even happen with small patch releases.
Click here if compiling fails.
As time has passed, some of SVG Types's dependencies could have released versions with a higher Rust requirement. If you encounter a compilation issue due to a dependency and don't want to upgrade your Rust toolchain, then you could downgrade the dependency.
# Use the problematic dependency's name and version
cargo update -p package_name --precise 0.1.1
Community
Discussion of SVG Types development happens in the Linebender Zulip at https://xi.zulipchat.com/, specifically the #resvg channel. All public content can be read without logging in.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Contributions are welcome by pull request. The Rust code of conduct applies. Please feel free to add your name to the AUTHORS file in any substantive pull request.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be licensed as above, without any additional terms or conditions.
Dependencies
~655KB
~14K SLoC