{"id":15720284,"url":"https://github.com/gnome/librsvg","last_synced_at":"2025-04-13T14:04:39.327Z","repository":{"id":3479481,"uuid":"4534843","full_name":"GNOME/librsvg","owner":"GNOME","description":"Read-only mirror of https://gitlab.gnome.org/GNOME/librsvg","archived":false,"fork":false,"pushed_at":"2025-04-10T02:21:33.000Z","size":50877,"stargazers_count":358,"open_issues_count":0,"forks_count":47,"subscribers_count":18,"default_branch":"main","last_synced_at":"2025-04-13T14:04:24.487Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://gitlab.gnome.org/GNOME/librsvg","language":"Rust","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-2.1","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GNOME.png","metadata":{"files":{"readme":"README.md","changelog":"NEWS","contributing":null,"funding":null,"license":"COPYING.LIB","code_of_conduct":"code-of-conduct.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2012-06-03T04:40:26.000Z","updated_at":"2025-04-10T14:28:20.000Z","dependencies_parsed_at":"2023-12-15T02:43:17.891Z","dependency_job_id":"e9584cc1-afbe-4083-bb49-de5236afdfab","html_url":"https://github.com/GNOME/librsvg","commit_stats":{"total_commits":8941,"total_committers":221,"mean_commits":"40.457013574660635","dds":0.3982775975841628,"last_synced_commit":"522948d0f52268d74c3cd078baf5a3c3bc9d1b66"},"previous_names":[],"tags_count":236,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNOME%2Flibrsvg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNOME%2Flibrsvg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNOME%2Flibrsvg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GNOME%2Flibrsvg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GNOME","download_url":"https://codeload.github.com/GNOME/librsvg/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248724639,"owners_count":21151561,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T21:58:11.634Z","updated_at":"2025-04-13T14:04:39.302Z","avatar_url":"https://github.com/GNOME.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Librsvg\n\nThis is librsvg - A small library to render Scalable Vector Graphics\n([SVG][svg]), associated with the [GNOME Project][gnome].  It renders\nSVG files to [Cairo][cairo] surfaces.  Cairo is the 2D, antialiased\ndrawing library that GNOME uses to draw things to the screen or to\ngenerate output for printing.\n\nDo you want to render non-animated SVGs to a Cairo surface with a\nminimal API?  Librsvg may be adequate for you.\n\n**Supported SVG/CSS features:** Please see the chapter for [supported\nfeatures][features] in the development guide.\n\n***PLEASE DO NOT SEND PULL REQUESTS TO GITHUB.***  We use\n[`gitlab.gnome.org`](https://gitlab.gnome.org/GNOME/librsvg) instead.\nPlease see [Contributing to librsvg][contributing] for details.\n\nTable of contents:\n\n[[_TOC_]]\n\n# Supported branches\n\nOnly these versions are supported:\n\n* 2.59.x\n* 2.60.x\n\nOlder versions are not supported.  Please try a newer version before\nreporting bugs or missing features.\n\nSee the [policy for supported\nversions](https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/supported_versions.html)\nfor more details.\n\n* [Release archive](https://gitlab.gnome.org/GNOME/librsvg/-/releases) in gitlab.gnome.org\n* [Source tarballs for download](https://download.gnome.org/sources/librsvg/) at download.gnome.org\n\n# Using librsvg\n\n* [C API documentation][c-docs]\n* [Rust API documentation][rust-docs]\n\n**Compiling:** Librsvg uses the [meson] build system.  Compile-time\noptions are listed in the file [`meson_options.txt`][meson_options].\nPlease refer to the [Detailed compilation instructions][compiling] in\nthe development guide.\n\n**Documentation:** You can read the documentation for librsvg's [C\nAPI][c-docs] or the [Rust API][rust-docs].  Please [file an\nissue][reporting-bugs] if you don't find something there that you\nneed.\n\n**Bug tracking:** If you have found a bug, take a look at [our bug\ntracker][bugs].  Please see the \"[reporting bugs][reporting-bugs]\"\npage in the development guide to see how to provide a good bug report.\n\n**Asking questions:** Feel free to ask questions about using librsvg\nin the \"Platform\" category of [GNOME's Discourse][discourse].  You can\nalso ask via chat in the Matrix room for [GNOME Rust][gnome-rust].\n\n**Programming languages:** Librsvg exports its API through [GObject\nIntrospection][gi].  This way, it is available in many programming\nlanguages other than C.  Please see your language binding's\ndocumentation for information on how to load the `Rsvg` namespace.\n\n**Security:** For a list of releases with security issues,\ninstructions on reporting security-related bugs, and the security\nconsiderations for librsvg's dependencies, see the [Security\nchapter][security] in the development guide.\n\n[c-docs]: https://gnome.pages.gitlab.gnome.org/librsvg/Rsvg-2.0/index.html\n[rust-docs]: https://gnome.pages.gitlab.gnome.org/librsvg/doc/rsvg/index.html\n\n# Contributing to librsvg's development\n\nThere is a code of conduct for contributors to librsvg; please see the\n[GNOME Code of Conduct][coc], which is duplicated in the file\n[`code-of-conduct.md`][coc-local].\n\nPlease see the [Development Guide for librsvg][devel-guide] on how to\ncontribute to librsvg, how to report bugs, how set up your development\nenvironment, and for a description of librsvg's architecture.\n\n# Goals of librsvg\n\nLibrsvg aims to be a low-footprint library for rendering SVG1.1 and SVG2 images.\nIt is used primarily in the [GNOME project](https://www.gnome.org) to\nrender SVG icons and vector images that appear on the desktop.  It is\nalso used in Wikimedia to render the SVG images that appear in\nWikipedia, so that even old web browsers can display them.  Many\nprojects which casually need to render static SVG images use librsvg.\n\nWe aim to be a \"render this SVG for me, quickly, and with a minimal\nAPI\" kind of library.\n\nFeature additions will be considered on a case-by-case basis.\n\nYou can read about librsvg's [supported SVG and CSS features][features] in the\ndevelopment guide.\n\n# Non-goals of librsvg\n\nWe don't aim to:\n\n* Implement every single SVG feature that is in the spec.\n\n* Implement scripting or external access to the SVG's DOM.\n\n* Implement support for CSS-based animations (but if you can think of\n  a nice API to do this, we would be glad to know!)\n\n* Replace the industrial-strength SVG rendering machinery in modern\n  web browsers.\n\nOf course, [contributions are welcome][contributing].  In particular,\nif you find nice ways of doing the above while still maintaining the\nexisting API of librsvg, we would love to know about it!\n\n# Who uses librsvg?\n\nLibrsvg is part of the [GNOME platform][platform].  Inside GNOME,\nlibrsvg takes multiple roles:\n\n* Loads SVGs from the generic gdk-pixbuf loader infrastructure, so any\n  application which uses gdk-pixbuf can load SVGs as if they were\n  raster images.\n\n* Loads SVG icons for the desktop.\n\n* Creates SVG thumbnails for the file manager.\n\n* Loads SVGs within GNOME's default image viewer, Eye of Gnome.\n\nOutside of GNOME's core:\n\n* GNOME games (chess, five-or-more, etc. to draw game pieces)\n\n* GIMP\n\n* GCompris\n\n* Claws-mail\n\n* Darktable\n\n* Mate-panel\n\n* Evas/Enlightenment\n\n* Emacs\n\n* ImageMagick\n\n* Wikipedia, to render SVGs as raster images for old browsers.\n  *Special thanks to Wikimedia for providing excellent bug reports.*\n\n\n# Presentations on librsvg\n\n\"[Replacing C library code with Rust: What I learned with\nlibrsvg][guadec-presentation-1]\" was presented at GUADEC 2017.  It gives\na little history of librsvg, and how/why it is being ported to Rust\nfrom C.\n\n\"[Patterns of refactoring C to Rust: the case of\nlibrsvg][guadec-presentation-2]\" was presented at GUADEC 2018.  It\ndescribes ways in which librsvg's C code was refactored to allow\nporting it to Rust.\n\n\n# Maintainers\n\nThe maintainer of librsvg is [Federico Mena Quintero][federico].  Feel\nfree to contact me for any questions you may have about librsvg, both\nits usage and its development.  You can contact me in the following\nways:\n\n* [Mail me][mail] at federico@gnome.org.\n\n* Matrix: I am `@federico` on the [GNOME Hackers][gnome-hackers] and\n  [Rust ❤️ GNOME][gnome-rust] channels on gnome.org's Matrix.  I'm\n  there most weekdays (Mon-Fri) starting at about UTC 14:00 (that's\n  08:00 my time; I am in the UTC-6 timezone).  If this is not a\n  convenient time for you, feel free to [mail me][mail] and we can\n  arrange a time.\n\n* I frequently [blog about librsvg][blog].  You may be interested in\n  the articles about porting librsvg from C to Rust, which happened\n  between 2016 and 2020.\n\n[svg]: https://en.wikipedia.org/wiki/Scalable_Vector_Graphics\n[gnome]: https://www.gnome.org/\n[cairo]: https://www.cairographics.org/\n[coc]: https://conduct.gnome.org\n[coc-local]: code-of-conduct.md\n[meson]: https://mesonbuild.com\n[meson_options]: meson_options.txt\n[compiling]: https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/compiling.html\n[mail]: mailto:federico@gnome.org\n[bugs]: https://gitlab.gnome.org/GNOME/librsvg/issues\n[gi]: https://gi.readthedocs.io/en/latest/\n[contributing]: https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/contributing.html\n[reporting-bugs]: https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/bugs.html\n[discourse]: https://discourse.gnome.org/c/platform/5\n[federico]: https://viruta.org/\n[platform]: https://developer.gnome.org/\n[guadec-presentation-1]: https://viruta.org/docs/fmq-porting-c-to-rust.pdf\n[guadec-presentation-2]: https://viruta.org/docs/fmq-refactoring-c-to-rust.pdf\n[gnome-hackers]: https://matrix.to/#/#gnome-hackers:gnome.org\n[gnome-rust]: https://matrix.to/#/#rust:gnome.org\n[devel-guide]: https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/index.html\n[security]: https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/security.html\n[features]: https://gnome.pages.gitlab.gnome.org/librsvg/devel-docs/features.html\n[blog]: https://viruta.org/tag/librsvg.html\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnome%2Flibrsvg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgnome%2Flibrsvg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgnome%2Flibrsvg/lists"}