{"id":13419532,"url":"https://github.com/svgpp/svgpp","last_synced_at":"2025-03-15T05:31:31.629Z","repository":{"id":14253171,"uuid":"16960683","full_name":"svgpp/svgpp","owner":"svgpp","description":"C++ SVG library","archived":false,"fork":false,"pushed_at":"2024-02-29T13:56:10.000Z","size":8904,"stargazers_count":536,"open_issues_count":23,"forks_count":100,"subscribers_count":36,"default_branch":"master","last_synced_at":"2024-07-31T22:49:50.484Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsl-1.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/svgpp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE_1_0.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2014-02-18T19:23:21.000Z","updated_at":"2024-07-27T01:41:36.000Z","dependencies_parsed_at":"2024-01-22T14:16:56.976Z","dependency_job_id":"434b1c04-19b2-4c12-90f5-2c905fec28ff","html_url":"https://github.com/svgpp/svgpp","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svgpp%2Fsvgpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svgpp%2Fsvgpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svgpp%2Fsvgpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/svgpp%2Fsvgpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/svgpp","download_url":"https://codeload.github.com/svgpp/svgpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243690111,"owners_count":20331726,"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-07-30T22:01:17.304Z","updated_at":"2025-03-15T05:31:30.891Z","avatar_url":"https://github.com/svgpp.png","language":"C++","funding_links":[],"categories":["TODO scan for Android support in followings","C++"],"sub_categories":[],"readme":"SVG++ library 1.3.0\n=======================\n\nPlease visit http://svgpp.org/ for description, tutorial and reference.\n\n#### About\n\nSVG++ library can be thought of as a framework, containing parsers for various SVG syntaxes, adapters that simplify\nhandling of parsed data and a lot of other utilities and helpers for the most common tasks.\nTake a look at [Tutorial](http://svgpp.org/lesson01.html) to get the idea about what it is.\n\n#### SVG++ features\n\n* Is a header-only library\n* Can be used with any XML parser\n* Compile time configured - no virtual functions\n* Minimal runtime overhead - you pay only for what you get\n* Has wide range of possible uses:\n\n  * Fully functional, conforming SVG viewers\n  * Simple in-app SVG rasterizers\n  * Import modules of vector editing software\n  * Implementing path-only input of SVG format with minimal efforts in any graphics or math software\n* Requires only Boost library itself (demo, tests and sample have their own requirements)\n* Compatible with C++11, but requires conforming implementation, due to heavy usage of templates\n* Supports any character type (`char` and `wchar_t`). Other (Unicode from C++11) were not tested, but should be ok.\n\n#### SVG 1.1 features covered by SVG++\n\n* Path data - parsing, simplification\n* Transform list - parsing, simplification\n* Color, including ICC color - parsing\n* Lengths - highly configurable handling of SVG lengths, full support of all SVG length units\n* Basic shapes - optional conversion to path\n* Style attribute - parsing, taking in account differences in parsing presentation attributes and style properties\n* Automatic marker positions calculation\n* Viewport and viewbox handling\n\n#### SVG++ is NOT\n\n* An SVG viewer or library that produces raster image from SVG\n  (though C++ demo app included, which renders SVG with [AGG](http://antigrain.com), GDI+ or [Skia](https://code.google.com/p/skia/) graphics library)\n* Renders anything itself\n\n#### What's new\n\n* SVG++ update 1.2.1 fixes handling text content inside `\u003ca\u003e` element that is a child of `\u003ctext\u003e` element.\n* SVG++ update 1.2 focuses on reducing compiler memory usage by allowing separation\n  of template heavy Boost.Spirit code to other compilation unit.\n\n#### How to Help\n\n* *CSS Processor.* Processing CSS is outside of SVG++ scope, but it'll be nice to have some generic implementation of CSS\nselectors to use at preprocessing stage.\n* *SVG Filter Effects.* Some filters are already implemented in demo application but the complete solution requires more efforts.\nGeneric enough parts may fit in SVG++ source base. Usage of Boost.GIL may make the code more reusable.\n* *Animation.* Implementation of animation in the demo application. Probably some utilities may get to SVG++.\n* Try to reduce compiler memory usage by switching to some C++11 metaprogramming library (brigand?).\nEvaluate upgrade to Boost.Spirit 3.0.\n* Extend demo with Cairo support?\n* More wrappers for XML parsers?\n* Evolve demo to fully functional SVG rendering component for one of the graphic engines.\nA major gap in demo's SVG implementation is text and font support. It'll be too complex to make it cross-engine, but\nfor the single engine chosen and probably with third-party libraries like FreeType it's pretty feasible.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvgpp%2Fsvgpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsvgpp%2Fsvgpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsvgpp%2Fsvgpp/lists"}