{"id":13620228,"url":"https://github.com/sammycage/plutosvg","last_synced_at":"2026-05-18T07:06:05.131Z","repository":{"id":55006951,"uuid":"298790843","full_name":"sammycage/plutosvg","owner":"sammycage","description":"Tiny SVG rendering library in C","archived":false,"fork":false,"pushed_at":"2025-06-18T03:44:16.000Z","size":303,"stargazers_count":334,"open_issues_count":3,"forks_count":28,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-06-18T04:31:41.173Z","etag":null,"topics":["c","emoji2png","freetype","otfsvg","plutovg","svg","svg-hooks","svg2png"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sammycage.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","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,"zenodo":null},"funding":{"github":"sammycage"}},"created_at":"2020-09-26T10:32:00.000Z","updated_at":"2025-06-18T03:44:19.000Z","dependencies_parsed_at":"2024-11-06T07:20:30.455Z","dependency_job_id":"1c03856c-41c1-4a68-9250-ead2acedc3cb","html_url":"https://github.com/sammycage/plutosvg","commit_stats":null,"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/sammycage/plutosvg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sammycage%2Fplutosvg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sammycage%2Fplutosvg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sammycage%2Fplutosvg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sammycage%2Fplutosvg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sammycage","download_url":"https://codeload.github.com/sammycage/plutosvg/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sammycage%2Fplutosvg/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269022173,"owners_count":24346274,"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","status":"online","status_checked_at":"2025-08-06T02:00:09.910Z","response_time":99,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["c","emoji2png","freetype","otfsvg","plutovg","svg","svg-hooks","svg2png"],"created_at":"2024-08-01T21:00:53.598Z","updated_at":"2026-05-18T07:06:05.119Z","avatar_url":"https://github.com/sammycage.png","language":"C","funding_links":["https://github.com/sponsors/sammycage"],"categories":["C"],"sub_categories":[],"readme":"![emoji-collection.png](https://github.com/user-attachments/assets/a5de9b70-39a8-4a15-a012-22ab3cb93054)\n\n# PlutoSVG\n\nPlutoSVG is a compact and efficient SVG rendering library written in C. It is specifically designed for parsing and rendering SVG documents embedded in OpenType fonts, providing an optimal balance between speed and minimal memory usage. It is also suitable for rendering scalable icons.\n\n## Basic Usage\n\n```c\n#include \u003cplutosvg.h\u003e\n\n#include \u003cstdio.h\u003e\n\nint main(void)\n{\n    plutosvg_document_t* document = plutosvg_document_load_from_file(\"camera.svg\", -1, -1);\n    if(document == NULL) {\n        printf(\"Unable to load: camera.svg\\n\");\n        return -1;\n    }\n\n    plutovg_surface_t* surface = plutosvg_document_render_to_surface(document, NULL, -1, -1, NULL, NULL, NULL);\n    plutovg_surface_write_to_png(surface, \"camera.png\");\n    plutosvg_document_destroy(document);\n    plutovg_surface_destroy(surface);\n    return 0;\n}\n```\n\n![camera.png](https://github.com/sammycage/plutosvg/blob/master/camera.png)\n\n## Integrating with FreeType\n\n```c\n#include \u003cplutosvg-ft.h\u003e\n\n#include \u003cft2build.h\u003e\n#include FT_FREETYPE_H\n#include FT_MODULE_H\n\nint main(void)\n{\n    FT_Library library;\n\n    // Initialize the FreeType library\n    if(FT_Init_FreeType(\u0026library)) {\n        // Handle error\n        return -1;\n    }\n\n    // Set PlutoSVG hooks for the SVG module\n    if(FT_Property_Set(library, \"ot-svg\", \"svg-hooks\", \u0026plutosvg_ft_hooks)) {\n        // Handle error\n        return -1;\n    }\n\n    // Your code here\n\n    // Clean up\n    FT_Done_FreeType(library);\n    return 0;\n}\n```\n\n## Installation\n\nFollow the steps below to install PlutoSVG using either [Meson](https://mesonbuild.com/) or [CMake](https://cmake.org/).\n\n### Using Meson\n\n```bash\ngit clone https://github.com/sammycage/plutosvg.git\ncd plutosvg\nmeson setup build\nmeson compile -C build\nmeson install -C build\n```\n\n### Using CMake\n\n```bash\ngit clone --recursive https://github.com/sammycage/plutosvg.git\ncd plutosvg\ncmake -B build .\ncmake --build build\ncmake --install build\n```\n\n### Projects Using PlutoSVG\n\n- [PumpkinOS](https://github.com/migueletto/PumpkinOS)\n- [Shell](https://github.com/moudey/Shell)\n- [Dear ImGui](https://github.com/ocornut/imgui)\n- [SDL_ttf](https://github.com/libsdl-org/SDL_ttf)\n- [PCSX2](https://github.com/PCSX2/pcsx2)\n- [FastChart](https://github.com/iliaal/fastchart)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsammycage%2Fplutosvg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsammycage%2Fplutosvg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsammycage%2Fplutosvg/lists"}