C Rust Makefile M4 Shell Python Other
Permalink
Failed to load latest commit information.
doc doc/Makefile.am: Generate in xml mode Dec 8, 2017
gdk-pixbuf-loader bgo#778666 - Use our own thumbnailer specification file May 3, 2017
m4 Install the tests Oct 22, 2015
rust Merge branch 'alatiera/librsvg-master' Jan 8, 2018
tests Change git and bugzilla URLs to gitlab Dec 14, 2017
tools tools: Fix a minor memory leak of command line arguments Aug 8, 2017
win32 Visual Studio builds: Enhance security of x64 binaries Oct 20, 2017
.gitignore Update .gitignore Dec 28, 2017
ARCHITECTURE.md ARCHITECTURE.md: element attributes; start of the Rendering section Jan 6, 2018
AUTHORS Update AUTHORS from the whole git log Dec 16, 2016
COMPILING.md COMPILING.md - fix the example of how cross-compilation variables get… Dec 8, 2017
CONTRIBUTING.md Change git and bugzilla URLs to gitlab Dec 14, 2017
COPYING build out of srcdir; bug 158331 Oct 7, 2005
COPYING.LIB Add to make rpm happy. Apr 3, 2001
ChangeLog.old Automatically generate ChangeLog from git history Sep 6, 2011
INSTALL build out of srcdir; bug 158331 Oct 7, 2005
MAINTAINERS Update NEWS and librsvg.doap; add MAINTAINERS Feb 11, 2015
Makefile.am Makefile.am: Argh, add text.rs to the sources Jan 9, 2018
NEWS Update NEWS for 2.42.0 Jan 8, 2018
README.md Change git and bugzilla URLs to gitlab Dec 14, 2017
Rsvg-2.0-custom.vala Add Vala bindings Jun 19, 2012
Rsvg-2.0.metadata Add Vala bindings Jun 19, 2012
acinclude.m4 Use -Bsymbolic-functions when available Nov 11, 2011
autogen.sh autogen.sh: Replace deprecated gnome-autogen.sh with standard autotools Feb 8, 2016
code_of_conduct.md Update the Contributor Covenant to version 1.4 Feb 11, 2016
config.h.win32.in build: Check for PangoFT2/FontConfig availability Aug 9, 2017
configure.ac Bump version to 2.42.0 Jan 8, 2018
glib-tap.mk Install the tests Oct 22, 2015
librsvg-features.c Tidy code Jun 19, 2012
librsvg-features.h.in librsvg-features.h.in: Fix Public Variable Declaration Sep 25, 2015
librsvg-uninstalled.pc.in Hard-depend on libcroco Nov 7, 2011
librsvg-zip.in Pick headers and loader DLL from correct places into zip package Dec 27, 2010
librsvg.doap Change git and bugzilla URLs to gitlab Dec 14, 2017
librsvg.pc.in Hard-depend on libcroco Nov 7, 2011
rsvg-base-file-util.c Ensure GFile is unreferenced to avoid filename memory leak Jan 8, 2018
rsvg-base.c Add rsvg_drawing_ctx_render_pango_layout(); bind it to Rust Dec 19, 2017
rsvg-cairo-clip.c s/create_pango_context/get_pango_context throughout Dec 6, 2017
rsvg-cairo-clip.h Sanitize the indentation specifiers for Emacs/Vim May 18, 2017
rsvg-cairo-draw.c Change git and bugzilla URLs to gitlab Dec 14, 2017
rsvg-cairo-draw.h s/create_pango_context/get_pango_context throughout Dec 6, 2017
rsvg-cairo-render.c s/create_pango_context/get_pango_context throughout Dec 6, 2017
rsvg-cairo-render.h Remove unused prototype Sep 1, 2017
rsvg-cairo.h Sanitize the indentation specifiers for Emacs/Vim May 18, 2017
rsvg-compat.h Handle the deprecation of g_type_init() to avoid compiler warnings Apr 16, 2015
rsvg-cond.c Remove unnecessary includes Aug 31, 2017
rsvg-convert.1 rsvg-convert.1 - Remove references to Sourceforge Jun 22, 2017
rsvg-convert.c Fully move rsvg_css_parse_color() to Rust. Yay! May 20, 2017
rsvg-css.c Move rsvg_css_parse_number_list() completely to Rust. Yay! Jun 20, 2017
rsvg-css.h Remove the C binding to AspectRatio; it's no longer used Dec 4, 2017
rsvg-defs.c Clean up rsvg-defs a bit Dec 5, 2017
rsvg-defs.h Sanitize the indentation specifiers for Emacs/Vim May 18, 2017
rsvg-file-util.c Remove unnecessary includes Aug 31, 2017
rsvg-filter.c gitlab#179 - rsvg_filter_primitive_free(): Check the GStrings for NUL… Jan 8, 2018
rsvg-filter.h Remove unnecessary includes Aug 31, 2017
rsvg-handle.c gitlab:175 - Clarify docs about needing a hash sign in the "_sub()" A… Jan 8, 2018
rsvg-io.c Clean up rsvg-defs a bit Dec 5, 2017
rsvg-io.h Clean up rsvg-defs a bit Dec 5, 2017
rsvg-marker.h Sanitize the indentation specifiers for Emacs/Vim May 18, 2017
rsvg-mask.h mask.rs: Port NodeMask completely to Rust. Yay! Dec 5, 2017
rsvg-paint-server.c Move utility function in rsvg-image.[ch] to rsvg-base.c. Sep 26, 2017
rsvg-paint-server.h gradient.rs: Fully move gradients to Rust. Yay! Jun 6, 2017
rsvg-path-builder.h Sanitize the indentation specifiers for Emacs/Vim May 18, 2017
rsvg-private.h Add rsvg_drawing_ctx_render_pango_layout(); bind it to Rust Dec 19, 2017
rsvg-shapes.h Sanitize the indentation specifiers for Emacs/Vim May 18, 2017
rsvg-size-callback.c Don't export private function _rsvg_size_callback Jan 26, 2012
rsvg-size-callback.h Don't export private function _rsvg_size_callback Jan 26, 2012
rsvg-structure.h Move utility function in rsvg-image.[ch] to rsvg-base.c. Sep 26, 2017
rsvg-styles.c New accessor rsvg_state_get_font_decor() Dec 15, 2017
rsvg-styles.h Bind state::get_font_decor() to Rust Dec 15, 2017
rsvg-text.c Add rsvg_drawing_ctx_render_pango_layout(); bind it to Rust Dec 19, 2017
rsvg-text.h Use g_utf8_make_valid() instead of our own; require glib 2.52.0 Dec 6, 2017
rsvg-view.c Sanitize the indentation specifiers for Emacs/Vim May 18, 2017
rsvg-xml.c bgo#787895 - Use xmlCreateIOParserCtxt() for I/O callbacks instead of… Oct 4, 2017
rsvg-xml.h bgo#787895 - Use xmlCreateIOParserCtxt() for I/O callbacks instead of… Oct 4, 2017
rsvg.c gitlab:175 - Clarify docs about needing a hash sign in the "_sub()" A… Jan 8, 2018
rsvg.h Fix the documentation infrastructure a bit Dec 8, 2017
rsvg.symbols Build: Add rsvg.symbols File to Export Public Symbols Sep 25, 2015
tap-driver.sh Install the tests Oct 22, 2015
tap-test Install the tests Oct 22, 2015

README.md

Librsvg

This is librsvg - A small library to render Scalable Vector Graphics (SVG), associated with the GNOME Project. It renders SVG files to Cairo surfaces. Cairo is the 2D, antialiased drawing library that GNOME uses to draw things to the screen or to generate output for printing.

Do you want to render non-animated SVGs to a Cairo surface with a minimal API? Librsvg may be adequate for you.

Using librsvg

Compiling: Librsvg uses a mostly normal autotools setup. You may run into some peculiarities due to the Rust internals library if you are cross-compiling or if you are in a build system with no network access, or if you are building binary packages from a librsvg tarball. In those cases, please refer to the COMPILING.md file.

Documentation: You can read the documentation for librsvg at developer.gnome.org. Please tell us if you don't find something there that you need.

Bug tracking: If you have found a bug, take a look at our bug tracker. Please see the "reporting bugs" section in the file CONTRIBUTING.md to see how to provide a good bug report.

Asking questions: Feel free to ask questions about using librsvg in the desktop-devel-list mailing list.

Programming languages: Librsvg exports its API through GObject Introspection. This way, it is available in many programming languages other than C. Please see your language binding's documentation for information on how to load the Rsvg namespace.

Contributing to librsvg's development

There is a code of conduct for contributors to librsvg; please see the file code_of_conduct.md.

For information on how to report bugs, or how to contribute to librsvg in general, please see the file CONTRIBUTING.md.

Goals of librsvg

Librsvg aims to be a low-footprint library for rendering SVG images. It is used primarily in the GNOME project to render SVG icons and vector images that appear on the desktop. It is also used in Wikimedia to render the SVG images that appear in Wikipedia, so that even old web browsers can display them. Many projects which casually need to render static SVG images use librsvg.

We aim to be a "render this SVG for me, quickly, and with a minimal API" kind of library.

Feature additions will be considered on a case-by-case basis.

Non-goals of librsvg

We don't aim to:

  • Implement every single SVG feature that is in the spec.

  • Implement scripting or external access to the SVG's DOM.

  • Implement support for CSS-based animations (but if you can think of a nice API to do this, we would be glad to know!)

  • Replace the industrial-strength SVG rendering machinery in modern web browsers.

Of course, contributions are welcome. In particular, if you find nice ways of doing the above while still maintaining the existing API of librsvg, we would love to know about it!

Maintainers

The maintainer of librsvg is Federico Mena Quintero. You can mail me for any other questions you have about librsvg.