librsvg

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
librsvg
Librsvg.svg
Original author(s)Raph Levien
Developer(s)GNOME Project
Stable release2.52.2 (15 October 2021; 43 days ago (2021-10-15)[1]) [±]
Repository
Written inC, Rust
TypeGraphics library
LicenseGPLv2, LGPLv2
Websitewiki.gnome.org/Projects/LibRsvg Edit this on Wikidata

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

Wikipedia and Wikimedia Commons use librsvg 2.40 to render SVG as PNG.[3][4][5]

Backends[edit]

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.[6][7]

Adoption[edit]

librsvg is developed for the GNOME desktop environment and as such is used by GNOME Files 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.[8] It was once picked for these web applications because it was decidedly "fast but not very accurate", according to MediaWiki.[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 March 2016 version 2.40.13.[12] The rsvg-view manual page is also available online.[13]

Version history[edit]

product name date
1.0.0 2001-05-08
1.1.6 2002-03-07
2.0.0 2002-06-19
2.1.0 2002-09-27
2.2.0 2003-01-20
2.3.0 2003-04-08
2.4.0 2003-09-08
2.5.0 2003-12-07
2.6.0 2004-03-08
2.7.0 2004-03-10
2.8.0 2004-09-03
2.9.0 2005-01-25
2.11.0 2005-08-25
2.12.0 2005-09-15
2.13.0 2005-10-21
2.14.0 2006-02-25
2.15.0 2006-05-11
2.16.0 2006-08-31
2.18.0 2007-07-24
2.20.0 2008-01-19
2.22.0 2008-02-21
2.26.0 2009-03-16
2.31.0 2010-07-02
2.32.0 2010-09-27
2.34.0 2011-04-03
2.35.0 2011-11-14
2.36.0 2012-03-26
2.37.0 2013-01-10
2.39.0 2013-08-16
2.40.0 2013-10-14
2.40.16 2016-06-09
2.40.17 2017-04-07
2.40.20 2017-12-16
2.40.21 2020-02-26
2.41.0 2017-01-04
2.42.0 2018-01-09
2.43.0 2018-06-12
2.44.0 2018-08-23
2.45.0 2018-11-17
2.45.6 2019-05-14
2.45.92 2019-09-02
2.46.0 2019-09-09
2.47.0 2019-10-29
2.48.0 2020-03-07
2.48.9 2020-11-05
2.49.0 2020-05-29
2.49.5 2020-09-04
2.50.0 2020-09-10
2.50.3 2021-01-28
2.51.0 2021-02-03
2.51.4 2021-07-09
2.52.0 2021-09-15

Usage[edit]

On Linux with the librsvg2-bin package installed,[14] 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[edit]

  1. ^ "Tags - GNOME / librsvg". GNOME. Retrieved 20 October 2021.
  2. ^ "librsvg is a library to render SVG files using cairo". librsvg. GNOME. Retrieved May 10, 2012.
  3. ^ ⚓ T193352 Update librsvg; "⚓ T193352 Update librsvg". Retrieved 2021-03-06.
  4. ^ "librsvg bugs". Retrieved 2021-03-06.
  5. ^ "stretch-wikimedia - component/thumbor". apt-browser.toolforge.org. Retrieved 2021-03-09.
  6. ^ "Librsvg 2.41.0 is released". mail.gnome.org. 2017-01-03. Retrieved 2018-11-20.
  7. ^ Quintero, Federico Mena (2017). Replacing C library code with Rust: What I learned with librsvg (PDF). Manchester, UK: GUADEC.
  8. ^ Lucideer (April 27, 2009). "Manual:Image Administration - MediaWiki". MediaWiki. MediaWiki. Retrieved April 6, 2011.
  9. ^ "SVG benchmarks - MediaWiki". MediaWiki. MediaWiki. Retrieved April 6, 2011.
  10. ^ Worth, Carl (2 September 2005). "svg shootout". gmane.comp.gnome.lib.librsvg.devel. Retrieved 29 November 2014. the librsvg maintainers … have now added cairo support to librsvg. Many thanks are due to Caleb Moore and Dom Lachowicz for this work. The source can be compiled --with-cairo and it builds separate librsvg-2-cairo.so and librsvg-2-base.so libraries
  11. ^ Moore, Caleb (3 November 2005). "using librsvg cairo". gmane.comp.gnome.lib.librsvg.devel. Retrieved 29 November 2014. Librsvg-2.13 cannot link to libart since that backend was majorly broken when we released 2.13 and thus must link to cairo.
  12. ^ TumaGonx Zakkum (2012-06-10). "RSVG-Convert SVG image conversion tool". Open Source Software and Windows 32-bit. Retrieved 2016-04-02.
  13. ^ Paul Brossier, Dom Lachowicz, Alex Larsson, e.a. "rsvg-view" (man page). Archived from the original on 2014-12-28. Retrieved 2014-12-28.CS1 maint: uses authors parameter (link)
  14. ^ "Debian -- Details of package librsvg2-bin in buster".

External links[edit]