librsvg

(Redirected from Rsvg)

librsvg, (occasionally stylized as LibRsvg)[2] is a free software SVG rendering library written as part of the GNOME project, intended to be lightweight and portable.[3] The Linux command-line program rsvg-convert uses the library to turn SVG files into raster images.

librsvg
Original author(s)Raph Levien
Developer(s)GNOME Project
Stable release
2.58.0[1] Edit this on Wikidata / 17 March 2024; 2 months ago (17 March 2024)
Repository
Written inC, Rust
TypeGraphics library
LicenseGPLv2, LGPLv2
Websitewiki.gnome.org/Projects/LibRsvg Edit this on Wikidata

Backends

librsvg uses two other libraries to perform tasks from reading the file to rendering to the screen:

  • libxml is used to parse the XML representation of an SVG file into a form that can be accessed quickly by the library.
  • cairo is used to render the information obtained by libxml to a block of memory.

Since v2.41.0 many parts have been rewritten in Rust.[4][5]

Adoption

librsvg is developed for the GNOME desktop environment and as such is used by GNOME Files and GNOME Loupe but is also intended to be used in other software applications. As a notable example, wikis hosted by Wikimedia use librsvg to render SVG images.[6] It was once picked for these web applications because it was decidedly "fast but not very accurate", according to MediaWiki.[7] As of May 2023, Wikipedia and Wikimedia Commons use a version of librsvg 2.44 to render SVG as PNG.[8][9]

Upon switching to the cairo vector rendering engine in 2005,[10][11] librsvg became more accurate and more visually pleasing. Since 2012 an independent developer published Win32 console ports rsvg-convert.exe, as of December 2017 version 2.40.20.[12] The rsvg-view manual page is also available online.[13]

Version history

VersionDateComments
1.0.02001-05-08
1.1.62002-03-07
2.0.02002-06-19
2.1.02002-09-27
2.2.02003-01-20
2.3.02003-04-08
2.4.02003-09-08
2.5.02003-12-07
2.6.02004-03-08
2.7.02004-03-10
2.8.02004-09-03
2.9.02005-01-25
2.11.02005-08-25
2.12.02005-09-15
2.13.02005-10-21
2.14.02006-02-25
2.15.02006-05-11
2.16.02006-08-31
2.18.02007-07-24
2.20.02008-01-19
2.22.02008-02-21
2.26.02009-03-16
2.31.02010-07-02
2.32.02010-09-27
2.34.02011-04-03
2.35.02011-11-14
2.36.02012-03-26
2.37.02013-01-10
2.39.02013-08-16
2.40.02013-10-14
2.40.162016-06-09
2.40.172017-04-07
2.40.202017-12-16
2.40.212020-02-262.40.21: Last version without Rust
2.41.02017-01-04
2.42.02018-01-09
2.43.02018-06-12
2.44.02018-08-23
2.44.102018-12-11Older version, yet still maintained: 2.44.10: version used on Wikimedia Commons as of May 2023[14]
2.45.02018-11-17
2.45.62019-05-142:45.6: First version only on Rust.[clarification needed] Requires Cairo 1.16.0 or later and Rust 1.30.0 or later[15]
2.45.922019-09-02
2.46.02019-09-09
2.47.02019-10-29
2.48.02020-03-07
2.48.92020-11-05
2.49.02020-05-29
2.49.52020-09-04
2.50.02020-09-10
2.50.32021-01-28
2.51.02021-02-03
2.51.42021-07-09
2.52.02021-09-15
2.53.02022-01-18
2.53.12022-02-12
2.53.22022-03-12
2.54.02022-03-162.54.1 2022-04-23; 2.54.2 2022-05-13; 2.54.3 2022-05-14; 2.54.4 2022-06-10; 2.54.5 2022-08-26
2.55.02022-08-03
2.55.12022-09-05
2.55.22023-03-16
2.57.902024-01-25Latest version as of 2024-01-25

First version to use Rust crates for all image loading operations, eliminating gdk-pixbuf dependency.[16]

Usage

On Linux with the librsvg2-bin package installed,[17] an SVG file can be converted to PNG as follows:

$ rsvg-convert --format=png --output=diagram.png diagram.svg

Other supported output formats include PDF, XML, and valid SVG.

References

External links