{"id":15069480,"url":"https://github.com/bourgesl/marlin-renderer","last_synced_at":"2025-04-04T21:09:24.480Z","repository":{"id":13511122,"uuid":"16202089","full_name":"bourgesl/marlin-renderer","owner":"bourgesl","description":"Marlin is the FAST Java2D antialiasing rasterizer derived from OpenJDK Pisces (shape)","archived":false,"fork":false,"pushed_at":"2025-03-23T09:01:20.000Z","size":5142,"stargazers_count":184,"open_issues_count":12,"forks_count":17,"subscribers_count":23,"default_branch":"master","last_synced_at":"2025-03-28T20:09:26.555Z","etag":null,"topics":["java","java2d","openjdk","rasterizer","rendering-2d-graphics","shape"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bourgesl.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"License.md","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},"funding":{"github":"bourgesl","patreon":9339017}},"created_at":"2014-01-24T10:56:18.000Z","updated_at":"2025-03-23T09:01:24.000Z","dependencies_parsed_at":"2024-09-25T01:42:52.482Z","dependency_job_id":"a97de6a9-1ad0-4de4-acb2-0a13206e0557","html_url":"https://github.com/bourgesl/marlin-renderer","commit_stats":null,"previous_names":[],"tags_count":65,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bourgesl%2Fmarlin-renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bourgesl%2Fmarlin-renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bourgesl%2Fmarlin-renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bourgesl%2Fmarlin-renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bourgesl","download_url":"https://codeload.github.com/bourgesl/marlin-renderer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247249530,"owners_count":20908212,"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":["java","java2d","openjdk","rasterizer","rendering-2d-graphics","shape"],"created_at":"2024-09-25T01:42:44.116Z","updated_at":"2025-04-04T21:09:24.462Z","avatar_url":"https://github.com/bourgesl.png","language":"Java","funding_links":["https://github.com/sponsors/bourgesl","https://patreon.com/9339017"],"categories":[],"sub_categories":[],"readme":"Marlin-renderer\n===============\n\nMarlin is an open source (GPL2 + CP) Java2D ``RenderingEngine`` optimized for performance (improved memory usage (~ no GC) and footprint, better multi-threading) and better visual quality based on OpenJDK's Pisces implementation.\nIt handles shape rendering like ``Graphics2D draw(Shape) / fill(Shape)`` with stroke \u0026 dash attributes only but it does it very well !\n\n\u003cdiv style=\"display: block; margin: auto;\"\u003e\n  \u003cimg width=256 src=\"https://bourgesl.github.io/marlin-badge-xmas-2021/WorksWithOpenJDK-Marlin-powered-fullres-v3.png\" alt=\"Powered by OpenJDK's Marlin renderer logo\"\u003e\u003c/div\u003e\n\n\nRelease history\n===============\n\nLatest release: https://github.com/bourgesl/marlin-renderer/releases/latest\n\n| JDK | Default renderer | Latest Marlin release |\n| --- | --- | --- |\n| Open JDK 6 - 7    [LTS] [EOL] | Pisces       | [Marlin-renderer 0.9.4.3](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_3) |\n| Oracle JDK 6 - 7    [EOL] | Ductus       | [Marlin-renderer 0.9.4.3](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_3) |\n| Open JDK 8    [LTS] [EOL] | Pisces       | [Marlin-renderer 0.9.4.7 for JDK8](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_7_jdk8) |\n| Oracle JDK 8    [EOL] | Ductus       | [Marlin-renderer 0.9.4.7 for JDK8](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_7_jdk8) |\n| **Azul Zulu 8    [LTS]** | Marlin 0.7.4 / 0.9.1.1 | [Marlin-renderer 0.9.4.7 for JDK8](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_7_jdk8) |\n| Jetbrains JDK 8    [EOL] | Marlin 0.7.4 / 0.9.3 | [Marlin-renderer 0.9.4.7 for JDK8](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_7_jdk8) |\n| Open JDK 9    [EOL] | Marlin 0.7.4 | [Marlin-renderer 0.9.4.2 for JDK9+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_2_jdk9) |\n| Open JDK 10    [EOL] | Marlin 0.8.2 | [Marlin-renderer 0.9.4.2 for JDK9+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_2_jdk9) |\n| Open JDK 11    [LTS] [EOL] | Marlin 0.9.1   | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |\n| Open JDK 11.0.2    [EOL] | Marlin 0.9.1.1 | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |\n| Open JDK 14    [EOL] | Marlin 0.9.1.3 | [Marlin-renderer 0.9.4.8 for JDK11+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8) |\n| Open JDK 17    [LTS] [EOL] | Marlin 0.9.1.4 | [Marlin-renderer 0.9.4.8 for JDK17+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8_jdk17) |\n| **Open JDK 21    [LTS]** | Marlin 0.9.4.6 | [Marlin-renderer 0.9.4.8 for JDK17+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8_jdk17) |\n| Open JDK 22    [EOL] | Marlin 0.9.4.7 | [Marlin-renderer 0.9.4.8 for JDK17+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8_jdk17) |\n| Open JDK 23    [EOL] | Marlin 0.9.4.7 | [Marlin-renderer 0.9.4.8 for JDK17+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8_jdk17) |\n| **Open JDK 24** | Marlin 0.9.4.7 | [Marlin-renderer 0.9.4.8 for JDK17+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8_jdk17) |\n| **Open JDK 25    [LTS] (25.09)** | Marlin 0.9.4.7 | [Marlin-renderer 0.9.4.8 for JDK17+](https://github.com/bourgesl/marlin-renderer/releases/tag/v0_9_4_8_jdk17) |\n\nFor JavaFX, see the [Marlin-FX](https://github.com/bourgesl/marlin-fx) project\n\nNews\n====\n* mar 2025: Marlin-renderer 0.9.4.8 for JDK17+ released for OpenJDK 24 GA release\n* oct 2023: Marlin 0.9.4.7 integrated in OpenJDK 22\n* nov 2022: Marlin 0.9.4.6 integrated in OpenJDK 21\n* jan 2021: Marlin 0.9.1.4 integrated in OpenJDK 17\n* sep 2019: Marlin 0.9.1.3 integrated in OpenJDK 14\n* aug 2019: Marlin 0.9.1.2 integrated in OpenJDK 14\n* jul 2019: MarlinFX 0.9.3.1 integrated in OpenJFX 14, backported in OpenJFX 13\n* oct 2018: MarlinFX 0.9.3 integrated in OpenJFX 12\n* oct 2018: Marlin 0.9.1.1 backported to OpenJDK 11 updates (11.0.2)\n* sep 2018: Marlin 0.9.1.1 integrated in OpenJDK 12\n* jun 2018: MarlinFX 0.9.2 integrated in OpenJFX 11\n* apr 2018: Marlin 0.9.1 integrated in OpenJDK 11\n* dec 2017: Marlin \u0026 MarlinFX 0.8.2 integrated in OpenJDK \u0026 OpenJFX 10\n* nov 2017: Marlin rocks on [Geoserver benchmarks](https://gmf-test.sig.cloud.camptocamp.net/ms_perfs/): see geoserver (including Marlin 0.8.2) vs geoserver-jai results: it boosts geoserver to achieve MapServer performance !!\n* My personal point of view after javaone: it is your turn to contribute to OpenJDK \u0026 OpenJFX: see [openjdk thread](http://mail.openjdk.java.net/pipermail/openjfx-dev/2017-October/020900.html)\n* 4 oct 2017: JavaOne talk slides: [Marlin, a JDK9 Success Story: Vector Graphics on Steroids for Java 2D and JavaFX](https://github.com/bourgesl/bourgesl.github.io/raw/master/javaone2017/slides/javaone-marlin-talk.pdf)\n* may 2017: Marlin \u0026 MarlinFX 0.7.5 integrated in OpenJFX10 (enabled by default)\n* feb 2017: Blog post comparing Oracle ductus vs OpenJDK Marlin renderers (latency) [Performance Rendered Visual](https://www.azul.com/performance-rendered-visual/)\n* nov 2016: MarlinFX 0.7.5 integrated in OpenJFX9\n* jul 2016: Marlin integrated in [Jetbrains OpenJDK8 build](https://github.com/JetBrains/jdk8u) and running in IntelliJ IDEA 2016.3\n* feb 2016: FOSDEM talk slides [Marlin renderer, a successful fork and join the OpenJDK 9 project](https://bourgesl.github.io/fosdem-2016/slides/fosdem-2016-Marlin.pdf)\n* dec 2015: Marlin 0.7.4 integrated in OpenJDK9\n\n\nBuild status\n============\nContinuous Integration base on Github Actions (build + unit \u0026 integration tests):\n   * Branch jdk (jdk11+): [![CI](https://github.com/bourgesl/marlin-renderer/actions/workflows/build.yml/badge.svg?branch=jdk)](https://github.com/bourgesl/marlin-renderer/actions/workflows/build.yml)\n   * Branch use_Unsafe (jdk8) (left as is - not maintained since 2024.01): \n[![CI](https://github.com/bourgesl/marlin-renderer/actions/workflows/build.yml/badge.svg?branch=use_Unsafe)](https://github.com/bourgesl/marlin-renderer/actions/workflows/build.yml)\n\n\nLicense\n=======\n\nAs marlin is a fork from OpenJDK 8 Pisces source code, its license is the OpenJDK's license = GPL2 + ClassPath exception:\n\"\nGNU General Public License, version 2,\nwith the Classpath Exception\n\nThe GNU General Public License (GPL)\n\nVersion 2, June 1991\n\"\nSee License.md\n\n\nPerformance\n===========\n\nSee the [Benchmarks](https://github.com/bourgesl/marlin-renderer/wiki/Benchmarks)\n\n\nDocumentation\n=============\nDocumentation on how to use and tune the Marlin renderer is available in the [wiki]( https://github.com/bourgesl/marlin-renderer/wiki)\n\nHelp is needed to improve the wiki \u0026 documentation !\n\n\nGetting in touch\n================\n\nUsers and developers interested in the Marlin-renderer are kindly invited to join the [marlin-renderer](https://groups.google.com/forum/#!forum/marlin-renderer) Google Group.\n\n\nContributing\n============\n\nContributions are welcomed, get in touch with us on the [marlin-renderer](https://groups.google.com/forum/#!forum/marlin-renderer) Google Group and share your improvements via pull requests. \nSince we contribute this renderer into OpenJDK, we accept contributions from people that have signed the [Oracle Contribution Agreeement](http://www.oracle.com/technetwork/community/oca-486395.html) (very easy to do)\n\n\nSupport our work\n================\n\nPlease help if you appreciate the Marlin project:\n   * share your benchmark \u0026 test results (quality ?)\n   * improve test cases, quality \u0026 unit tests, submit bug reports\n   * documentation should be improved \u0026 updated\n\nTo support my efforts on improving either Java2D or JavaFX rendering thanks to the Marlin \u0026 MarlinFX projects, you can use github sponsor (https://github.com/sponsors/bourgesl).\n\n\nRelated projects\n================\n\n- [Mapbench](https://github.com/bourgesl/mapbench) provides testing \u0026 benchmarking tools based on real world map painted by the [GeoServer](http://geoserver.org/)\n- [Marlin-FX](https://github.com/bourgesl/marlin-fx) provides the Marlin renderer port into JavaFX Prism (shape rasterizer)\n\n\nAcknowledgments:\n================\nThe Marlin renderer project benefited from the following tools:\n* \u003ca href=\"https://www.ej-technologies.com/products/jprofiler/overview.html\"\u003eEJ-technologies Java Profiler \u003cimg src=\"https://www.ej-technologies.com/images/product_banners/jprofiler_medium.png\" alt=\"JProfiler logo\"\u003e\u003c/a\u003e \n\n* \u003cimg src=\"https://www.yourkit.com/images/yklogo.png\" alt=\"Yourkit\"\u003e supports open source projects with its full-featured Java Profiler.\nYourKit, LLC is the creator of \u003ca href=\"https://www.yourkit.com/java/profiler/\"\u003eYourKit Java Profiler\u003c/a\u003e\nand \u003ca href=\"https://www.yourkit.com/.net/profiler/\"\u003eYourKit .NET Profiler\u003c/a\u003e, innovative and intelligent tools for profiling Java and .NET applications.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbourgesl%2Fmarlin-renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbourgesl%2Fmarlin-renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbourgesl%2Fmarlin-renderer/lists"}