Open main menu

librsvg 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 uses the library to turn SVG files into raster images.

librsvg
Librsvg.svg
Original author(s)Raph Levien
Developer(s)GNOME Project
Stable release2.45.5 (16 February 2019; 7 months ago (2019-02-16)[1][2]) [±]
Repository Edit this at Wikidata
Written inC, Rust
TypeGraphics library
LicenseGPLv2, LGPLv2
Websitewiki.gnome.org/Projects/LibRsvg

BackendsEdit

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

  • libxml is used to parse the XML code orientation 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 to Rust.[4][5]

AdoptionEdit

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.[6] It was once picked for these web applications because it was decidedly "fast but not very accurate", according to MediaWiki.[7]

Upon switching to the cairo vector rendering engine in 2005,[8][9] 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.[10] The rsvg-view manual page is also available online.[11]

UsageEdit

On Linux, 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 and XML.

ReferencesEdit

  1. ^ "Tags - GNOME / librsvg". GNOME. Retrieved 27 April 2018.
  2. ^ "Releases · GNOME/librsvg · GitHub". GNOME. Retrieved 27 April 2018.
  3. ^ "librsvg is a library to render SVG files using cairo". librsvg. GNOME. Retrieved May 10, 2012.
  4. ^ "Librsvg 2.41.0 is released". mail.gnome.org. 2017-01-03. Retrieved 2018-11-20.
  5. ^ Quintero, Federico Mena (2017). Replacing C library code with Rust: What I learned with librsvg (PDF). Manchester, UK: GUADEC.
  6. ^ Lucideer (April 27, 2009). "Manual:Image Administration - MediaWiki". MediaWiki. MediaWiki. Retrieved April 6, 2011.
  7. ^ "SVG benchmarks - MediaWiki". MediaWiki. MediaWiki. Retrieved April 6, 2011.
  8. ^ 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
  9. ^ 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.
  10. ^ TumaGonx Zakkum (2012-06-10). "RSVG-Convert SVG image conversion tool". Open Source Software and Windows 32-bit. Retrieved 2016-04-02.
  11. ^ Paul Brossier, Dom Lachowicz, Alex Larsson, e.a. "rsvg-view" (man page). Retrieved 2014-12-28.CS1 maint: uses authors parameter (link)

External linksEdit