René's URL Explorer Experiment


Title: Refactor font rendering pipeline, remove `font-kit` and `pathfinder` by pbdeuchler · Pull Request #736 · plotters-rs/plotters · GitHub

Open Graph Title: Refactor font rendering pipeline, remove `font-kit` and `pathfinder` by pbdeuchler · Pull Request #736 · plotters-rs/plotters

X Title: Refactor font rendering pipeline, remove `font-kit` and `pathfinder` by pbdeuchler · Pull Request #736 · plotters-rs/plotters

Description: Alternative PR to #735 Font rendering pipeline changes Per discussion here, with the removal of font-kit and pathfinder we are now able to unify the default font rendering pipeline into a single code path. Users can now determine whether or not system fonts are used programmatically as part of the API instead of using build flags. The biggest change outside of the API surface is that font resolution and rasterization is deferred until the chart's draw call actually runs. The new API creates a FontContext struct that is created and scoped per DrawingArea. This FontContext struct gates what fonts are available for draw calls. Users may manipulate the FontContext by calling the new DrawingArea::with_fonts method. This call differs only slightly from the existing register_font call in that it takes multiple fonts and relaxes the static requirement on the font bytes by allowing Arc<[u8]>. This obviously creates some allocations but I'm not sure that's a concern here. Happy to change that back or into something different if we'd prefer a different performance profile. Deprecation of ab_glyph feature/functionality With this change we can deprecate the ab_glyph feature and register_font functionality. The only thing the ab_glyph feature enables now is: The register_font symbol and its global registry exist. The default FontContext is built with enable_system: false. I've done my best to integrate the existing behavior into the new pipeline however due to the way font caching works now register_font is much more stateful than before. There is a potential footgun when using both register_font and with_fonts where register_font can override the global state and unintentionally change a specific DrawingArea's FontContext, however this behavior works in an obvious imperative way so I'm hoping it's not a big issue. In order to make register_font work nicely with the new caching there are some performance changes where on every text render call we now: Walk explicit Vec (O(N) where N is small, typically ≤ 5) Maybe clone the registry Vec and walk it (using ab_glyph) Maybe one fontique system query (cached internally by fontique's Collection + SourceCache) Hash the bytes and look up GLOBAL_PARSED (typical case: hit, returns cached Arc) Parsing is still amortized and even for programs where users are using hundreds of fonts with hundreds of charts there should be a negligible difference, however anything rendering dynamically changing charts at scale will definitely notice something. Removal of font-kit and pathfinder This PR also removes font-kit and pathfinder in favor of harfrust, skrifa, and zeno. It also creates a FontEngine abstraction so this trio of dependencies can easily be swapped out in the future as things change (or to swash if we want). This is probably the most straightforward change. There is a potential regression since register_font takes byte blobs where existing code that is compatible with ab_glyph fails with harfrust. However given that harfrust is a Google sanctioned port of harfbuzz, the industry gold standard of font parsing, if there are regressions they are probably edge cases that shouldn't exist in the first place. We also bump MSRV to 1.88.0.

Open Graph Description: Alternative PR to #735 Font rendering pipeline changes Per discussion here, with the removal of font-kit and pathfinder we are now able to unify the default font rendering pipeline into a single co...

X Description: Alternative PR to #735 Font rendering pipeline changes Per discussion here, with the removal of font-kit and pathfinder we are now able to unify the default font rendering pipeline into a single co...

Opengraph URL: https://github.com/plotters-rs/plotters/pull/736

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:85978b6c-d284-e8db-fa7d-b5ce91b9469e
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-idB690:163249:5D6C9A:815A7D:6A587016
html-safe-nonce8c31de5effa6c557c697ee0d1cf368def60242fa5f34b4b6c4133eca680f3cb9
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiJCNjkwOjE2MzI0OTo1RDZDOUE6ODE1QTdEOjZBNTg3MDE2IiwidmlzaXRvcl9pZCI6Ijg0NjUyNTkwNjc2NDAxNDc5OTAiLCJyZWdpb25fZWRnZSI6ImlhZCIsInJlZ2lvbl9yZW5kZXIiOiJpYWQifQ==
visitor-hmac17fa4522daa77caf7aad0f623a70f46d57c24ece08056d2a1f1b8282254d9775
hovercard-subject-tagpull_request:3605168777
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/plotters-rs/plotters/pull/736/files
twitter:imagehttps://avatars.githubusercontent.com/u/712346?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/712346?s=400&v=4
og:image:altAlternative PR to #735 Font rendering pipeline changes Per discussion here, with the removal of font-kit and pathfinder we are now able to unify the default font rendering pipeline into a single co...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5f2a0c7865178af3d91dd9f13b0cdfc3c73a2529c873d2780bb4c01271a57ec6
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/plotters-rs/plotters git https://github.com/plotters-rs/plotters.git
octolytics-dimension-user_id51801576
octolytics-dimension-user_loginplotters-rs
octolytics-dimension-repository_id183275571
octolytics-dimension-repository_nwoplotters-rs/plotters
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id183275571
octolytics-dimension-repository_network_root_nwoplotters-rs/plotters
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release8aae7b8d6caacacf5c66eaeb2702d8dc88d85b4a
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/plotters-rs/plotters/pull/736/changes#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fplotters-rs%2Fplotters%2Fpull%2F736%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fplotters-rs%2Fplotters%2Fpull%2F736%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=plotters-rs%2Fplotters
Reloadhttps://github.com/plotters-rs/plotters/pull/736/changes
Reloadhttps://github.com/plotters-rs/plotters/pull/736/changes
Reloadhttps://github.com/plotters-rs/plotters/pull/736/changes
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
plotters-rs https://github.com/plotters-rs
plottershttps://github.com/plotters-rs/plotters
Notifications https://github.com/login?return_to=%2Fplotters-rs%2Fplotters
Fork 317 https://github.com/login?return_to=%2Fplotters-rs%2Fplotters
Star 4.6k https://github.com/login?return_to=%2Fplotters-rs%2Fplotters
Code https://github.com/plotters-rs/plotters
Issues 156 https://github.com/plotters-rs/plotters/issues
Pull requests 24 https://github.com/plotters-rs/plotters/pulls
Discussions https://github.com/plotters-rs/plotters/discussions
Actions https://github.com/plotters-rs/plotters/actions
Projects https://github.com/plotters-rs/plotters/projects
Security and quality 0 https://github.com/plotters-rs/plotters/security
Insights https://github.com/plotters-rs/plotters/pulse
Code https://github.com/plotters-rs/plotters
Issues https://github.com/plotters-rs/plotters/issues
Pull requests https://github.com/plotters-rs/plotters/pulls
Discussions https://github.com/plotters-rs/plotters/discussions
Actions https://github.com/plotters-rs/plotters/actions
Projects https://github.com/plotters-rs/plotters/projects
Security and quality https://github.com/plotters-rs/plotters/security
Insights https://github.com/plotters-rs/plotters/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fplotters-rs%2Fplotters%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fplotters-rs%2Fplotters%2Fissues%2Fnew%2Fchoose
pbdeuchlerhttps://github.com/pbdeuchler
plotters-rs:masterhttps://github.com/plotters-rs/plotters/tree/master
pbdeuchler:pbd/migrate_to_harfrusthttps://github.com/pbdeuchler/plotters/tree/pbd/migrate_to_harfrust
Conversation 44 https://github.com/plotters-rs/plotters/pull/736
Commits 30 https://github.com/plotters-rs/plotters/pull/736/commits
Checks 19 https://github.com/plotters-rs/plotters/pull/736/checks
Files changed https://github.com/plotters-rs/plotters/pull/736/files
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
Refactor font rendering pipeline, remove font-kit and pathfinder https://github.com/plotters-rs/plotters/pull/736/changes#top
Show all changes 30 commits https://github.com/plotters-rs/plotters/pull/736/files
c740d70 feat(font): replace font-kit/ab_glyph stack with fontique/harfrust/sk… pbdeuchler Apr 29, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/c740d70f36858fde5822448ca0d3bf6a0e2c13c6
3187a6f test(font): cover the new context pipeline against the bitmap backend pbdeuchler Apr 29, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/3187a6fb8252910057e13e34b9c05ea95eee92e8
ac403d0 refactor(font): drop the legacy native backends and their dependencies pbdeuchler Apr 29, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/ac403d08337e9c32f84747c552b4f6c6ad0cd39d
de1acd8 fix(font): re-export InvalidFont alongside register_font pbdeuchler Apr 29, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/de1acd884236d25643e632def76557a953734bfe
0a57bb1 cr: address Claude code review, remove random crufty API surface, fix… pbdeuchler Apr 29, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/0a57bb1d41455b3f0ed8e7019c6f99faa698849f
0df95d1 chore(ci): install libfontconfig-dev on Linux runners pbdeuchler Apr 29, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/0df95d15388029c511806112223d2f4a03a6c74c
6d8179a feat(font): add dynamic_font example, seal FontContext as pub(crate) pbdeuchler Apr 29, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/6d8179a099da85b3cbdb20465d58440ce5421ae5
11f700d fix(font): add skrifa hinting and subpixel-aware rasterization pbdeuchler Apr 30, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/11f700d661b144dbae2b15728a8b3bd5ddbc59c6
681dc87 chore: remove LLM cruft comments pbdeuchler Apr 30, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/681dc8799a6860d66704ec494ab7d9f1d8c22e23
69719d7 chore: remove builder and pointless inner struct from earlier versions pbdeuchler Apr 30, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/69719d77cbcec307214affd91e8f0c85f3713ff6
a11e987 fix: fix example and bugs preventing them from running around type hi… pbdeuchler Apr 30, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/a11e98787543b83fd01f255b17eb81d1dacabaff
8d3d634 chore: once again remove LLM comment cruft pbdeuchler Apr 30, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/8d3d6348063aa0651f0b2779f1833b6fa3e3ad58
a895174 fix: kerning baseline fix and quick compilation fix since somehow we … pbdeuchler Apr 30, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/a895174655942681e91728aa9537129bfa340495
f24a7e8 nit: make engine declarations a bit more readable pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/f24a7e8bbc315841edd7e557a007cc7863e90a4f
dbb1360 nit: invert if for better readability pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/dbb1360655cb09782f4ee42a6bb6d2929520e2c9
6fa6833 chore: fix tests by creating font family fallback behavior, mimicking… pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/6fa683326ba9147bf622016ee09adabc37ff7bf6
f83f203 chore: screwed up submodules somehow, fixing pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/f83f2039b76c6636200fb1c83a9fe92beee64d95
d42ea18 nit: flatten Result> to just Option<> per cr comments pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/d42ea183fb58f49c9d810303dde6336d30f8aac8
21e85ba chore: check in fonts used in dynamic_font example pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/21e85ba40663d3a50b293cb5d3614d79c93f6a32
de4f0aa fix(font): push the chart's font context when laying out series labels pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/de4f0aa328bb07b6051fcf0c76fadee60d1265a3
c75959e feat(examples): add modern.rs dark-theme line chart example pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/c75959ee583169a99e7305ea58c4a2260d22f2cd
0d7198c Update plotters/src/style/font/system.rs pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/0d7198c396cd2066e324f50d85ec0ddb1bb1c064
909e82b Update plotters/src/style/font/context.rs pbdeuchler May 1, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/909e82bd524049df7d8d43b339fea5a8342dec23
eb66f3b chore: tweak modern example pbdeuchler May 7, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/eb66f3ba085d058153434d3bf8486fc9ee73a6ee
2ea06ab fix: addressed code review comments pbdeuchler May 8, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/2ea06ab8f127997b49c9a9f60bd6d8531fa98284
2391a76 chore: remove style comments pbdeuchler May 8, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/2391a7650bbc1aa59cb70c619e60cababa9100ae
c70b6bd chore: bump MSRV pbdeuchler May 8, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/c70b6bd5135d84d20ad51e8b8d3e535d1c7263e2
72a821c fix: migrate plotters-doc-data to plotters org repo pbdeuchler May 8, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/72a821c4d62c63357cec30fd0454d51a9373319a
b1f70a8 fix: migrate plotters-doc-data to plotters org repo pbdeuchler May 8, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/b1f70a8e0471455183bbce3bd91c1c1e0d1cec62
e4ec38e refactor: cache font resolution, simplify pipeline, make with_fonts a… pbdeuchler Jul 2, 2026 https://github.com/plotters-rs/plotters/pull/736/commits/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a
Clear filters https://github.com/plotters-rs/plotters/pull/736/files
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
plotters-backend.yml https://github.com/plotters-rs/plotters/pull/736/changes#diff-f491e9b960b70b28c2912f45b27f9c827148b434c8091f44d156ebd4d00653a9
plotters-bitmap.yml https://github.com/plotters-rs/plotters/pull/736/changes#diff-ab2b7c7f33a3e86357a2551ff029280b8007d27e1c9e23aa94b9f296573e3fd5
plotters-core.yml https://github.com/plotters-rs/plotters/pull/736/changes#diff-1587bf43bf12b0ccf277c06565e51d43cfbc848f9a1eb1d44f0bfc8d0e0db4af
plotters-svg.yml https://github.com/plotters-rs/plotters/pull/736/changes#diff-0a6f8ae42980106728031da72ce5938c473ca5a51f65e1dee8ef68e32f59e707
rust-clippy.yml https://github.com/plotters-rs/plotters/pull/736/changes#diff-d5f12606bb0b0c239bd842180ca187e2bc6f587a09778b3e90381e7a36dcd67e
wasm.yml https://github.com/plotters-rs/plotters/pull/736/changes#diff-7985cab97a05bfe5fc9e7b10f0a11e6889e2eddf3f937bb16f85e14409e3b35e
.gitmodules https://github.com/plotters-rs/plotters/pull/736/changes#diff-fe7afb5c9c916e521401d3fcfb4277d5071798c3baf83baf11d6071742823584
README.md https://github.com/plotters-rs/plotters/pull/736/changes#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
readme.template.md https://github.com/plotters-rs/plotters/pull/736/changes#diff-fe8557187d89247036140c7374d6e4efa04bf63bb257fab249db0385e390e4e1
text.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-346755a911996b842f50481fc734c19d0826e2f933292b1a6b89dfd53f8804c3
Cargo.toml https://github.com/plotters-rs/plotters/pull/736/changes#diff-55d8ef24265dcb137e7a4cedf636b97f3af2abb47402014573f138abf839885c
Cargo.toml https://github.com/plotters-rs/plotters/pull/736/changes#diff-75149e8cbe0837e7e33ae58d7821afa242fdd1e04c927ad17b3856c5f6a07dd9
svg.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-2e9925fc5315a70c1cc3618558a1c077aacfef323bd9de61526e23382ee26425
Cargo.toml https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
3d-plot.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-881bd50f65743628d1147ace91f6a05ce60ef5b60a76b6901b69591f1b981354
dynamic_font.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-bd70df5c186f8c6dae2aaeef1f7b3f6b7e5f01ea38fc2fe358be17ce4fd6151e
Kablammo-OFL.txt https://github.com/plotters-rs/plotters/pull/736/changes#diff-14cc91f577c03ca9c3d4460493a20c7e009f2f063fa82ccfd5a1c41930e61907
Kablammo-Regular.ttf https://github.com/plotters-rs/plotters/pull/736/changes#diff-a7fec5806e465febdc39917fafe90f8c77b5b9678d605982b519d3d2821de591
Roboto-Bold.ttf https://github.com/plotters-rs/plotters/pull/736/changes#diff-c08be9ee9079754d691c252befd092eb295f682adcb180044e6ff7a8479f02b9
Roboto-OFL.txt https://github.com/plotters-rs/plotters/pull/736/changes#diff-665cf869e342f5ae37bc192af71ff877f859b18afd6fc3d0a760bc0da7fe4c9f
Roboto-Regular.ttf https://github.com/plotters-rs/plotters/pull/736/changes#diff-65c793a3f4db838adfcfcf8b6a9901c7338133f913a4c3272858b6d172c6d3da
modern.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-a9658cc5a12b5197716bc029a84327330ef4431f6f8d25cd4cee374283595cee
plotters-doc-data https://github.com/plotters-rs/plotters/pull/736/changes#diff-7719975e7e868228e69c27ac2ecceb8feabe6227185f21fb5aaab08f4d8553f2
context.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-d8e94a173494c068bd7e53477781357620d3393007ea4ad2a5fb128b2533546f
series.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-5d337c577d001f793236fc6314695c51acc29a4f5da9b26eac924954418c899d
area.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-415e00bbf7d869af53f7768070a8daa3509e5d55f7c18cab19f7a359408ea69a
text.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-581f3496cbeaee92b843b32e6cd7270261190f6c01fd2a12a664c326d5a5d17f
lib.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-e383440dcc97f7433b4467873cdb57ddb7df39fedde3512918a5f5c27b13c6b1
ab_glyph.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-419191647b2d61f9a5b677a9f2219e7c1e42e5e6676f51230cf09c8b095ee984
context.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-1d522fd57f9bb898979404e5bac344b61f82d03d377f7647557f007a3dad5522
engine.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-e0b83337b459244f45cbcbabeea8009140f6ea7a0f9f0cb6c4b9b3533bb5594d
font_desc.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-fa81212a3807238709679cae84299b339237369e02105e669453b0e545fab1b1
harfrust_engine.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-f071a3c388257ffa578325cc55317265fa82ec7198a05e2167f9a570520df378
migration.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-071405da544ca16e289cd56dddaf3916c62ddc273fa5659f2c896f7e67871098
mod.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-cb1f509c8f405e605e2cc6a7d216c8eb3aa87de1c91016041dfca769e53ce2b6
naive.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-1c1ad5e0999dd1c115c4fb40c9fa35586914c2147233a05f8f843b769bd62d3d
system.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-dce9358ae3733dc3bbad1e3ab1948f133811851a2857d7d006dcb93889771fdb
ttf.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-c2d622590265cf6af706284883e000d8568a192a4c90e32502f2e05ea64af357
mod.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-5c6ff5327c270f79d5e53c4d1d0307ec4dc9021ba3c021c0f39a30a2d1a36c3d
README.md https://github.com/plotters-rs/plotters/pull/736/changes#diff-8fa4a83fae990a53d1bda905ee1910bc8c536a9469468cbc90a4514056244247
SourceSansPro-Regular-Tiny.ttf https://github.com/plotters-rs/plotters/pull/736/changes#diff-c62ac73891df335335bfd8742808b2d4cd33108681167ece5572ed7c1e17f791
font_migration.rs https://github.com/plotters-rs/plotters/pull/736/changes#diff-46b63498cbb2cd6b829176a9e79c234bdee878805acd02d8fd6b0b23abf0610c
.github/workflows/plotters-backend.ymlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-f491e9b960b70b28c2912f45b27f9c827148b434c8091f44d156ebd4d00653a9
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/.github/workflows/plotters-backend.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-f491e9b960b70b28c2912f45b27f9c827148b434c8091f44d156ebd4d00653a9
https://github.com/plotters-rs/plotters/pull/736/changes#diff-f491e9b960b70b28c2912f45b27f9c827148b434c8091f44d156ebd4d00653a9
.github/workflows/plotters-bitmap.ymlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-ab2b7c7f33a3e86357a2551ff029280b8007d27e1c9e23aa94b9f296573e3fd5
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/.github/workflows/plotters-bitmap.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-ab2b7c7f33a3e86357a2551ff029280b8007d27e1c9e23aa94b9f296573e3fd5
https://github.com/plotters-rs/plotters/pull/736/changes#diff-ab2b7c7f33a3e86357a2551ff029280b8007d27e1c9e23aa94b9f296573e3fd5
.github/workflows/plotters-core.ymlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-1587bf43bf12b0ccf277c06565e51d43cfbc848f9a1eb1d44f0bfc8d0e0db4af
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/.github/workflows/plotters-core.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-1587bf43bf12b0ccf277c06565e51d43cfbc848f9a1eb1d44f0bfc8d0e0db4af
https://github.com/plotters-rs/plotters/pull/736/changes#diff-1587bf43bf12b0ccf277c06565e51d43cfbc848f9a1eb1d44f0bfc8d0e0db4af
.github/workflows/plotters-svg.ymlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-0a6f8ae42980106728031da72ce5938c473ca5a51f65e1dee8ef68e32f59e707
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/.github/workflows/plotters-svg.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-0a6f8ae42980106728031da72ce5938c473ca5a51f65e1dee8ef68e32f59e707
https://github.com/plotters-rs/plotters/pull/736/changes#diff-0a6f8ae42980106728031da72ce5938c473ca5a51f65e1dee8ef68e32f59e707
.github/workflows/rust-clippy.ymlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-d5f12606bb0b0c239bd842180ca187e2bc6f587a09778b3e90381e7a36dcd67e
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/.github/workflows/rust-clippy.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-d5f12606bb0b0c239bd842180ca187e2bc6f587a09778b3e90381e7a36dcd67e
https://github.com/plotters-rs/plotters/pull/736/changes#diff-d5f12606bb0b0c239bd842180ca187e2bc6f587a09778b3e90381e7a36dcd67e
.github/workflows/wasm.ymlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-7985cab97a05bfe5fc9e7b10f0a11e6889e2eddf3f937bb16f85e14409e3b35e
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/.github/workflows/wasm.yml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-7985cab97a05bfe5fc9e7b10f0a11e6889e2eddf3f937bb16f85e14409e3b35e
https://github.com/plotters-rs/plotters/pull/736/changes#diff-7985cab97a05bfe5fc9e7b10f0a11e6889e2eddf3f937bb16f85e14409e3b35e
.gitmoduleshttps://github.com/plotters-rs/plotters/pull/736/changes#diff-fe7afb5c9c916e521401d3fcfb4277d5071798c3baf83baf11d6071742823584
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/.gitmodules
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
README.mdhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/README.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
https://github.com/plotters-rs/plotters/pull/736/changes#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
https://github.com/plotters-rs/plotters/pull/736/changes#diff-b335630551682c19a781afebcf4d07bf978fb1f8ac04c6bf87428ed5106870f5
doc-template/readme.template.mdhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-fe8557187d89247036140c7374d6e4efa04bf63bb257fab249db0385e390e4e1
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/doc-template/readme.template.md
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-fe8557187d89247036140c7374d6e4efa04bf63bb257fab249db0385e390e4e1
philocalysthttps://github.com/philocalyst
Apr 30, 2026https://github.com/plotters-rs/plotters/pull/736/changes#r3165875895
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
pbdeuchlerhttps://github.com/pbdeuchler
May 1, 2026https://github.com/plotters-rs/plotters/pull/736/changes#r3171682597
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
Learn morehttps://docs.github.com/articles/managing-disruptive-comments/#hiding-a-comment
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
https://github.com/plotters-rs/plotters/pull/736/changes#diff-fe8557187d89247036140c7374d6e4efa04bf63bb257fab249db0385e390e4e1
https://github.com/plotters-rs/plotters/pull/736/changes#diff-fe8557187d89247036140c7374d6e4efa04bf63bb257fab249db0385e390e4e1
plotters-backend/src/text.rshttps://github.com/plotters-rs/plotters/pull/736/changes#diff-346755a911996b842f50481fc734c19d0826e2f933292b1a6b89dfd53f8804c3
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/plotters-backend/src/text.rs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-346755a911996b842f50481fc734c19d0826e2f933292b1a6b89dfd53f8804c3
https://github.com/plotters-rs/plotters/pull/736/changes#diff-346755a911996b842f50481fc734c19d0826e2f933292b1a6b89dfd53f8804c3
plotters-bitmap/Cargo.tomlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-55d8ef24265dcb137e7a4cedf636b97f3af2abb47402014573f138abf839885c
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/plotters-bitmap/Cargo.toml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-55d8ef24265dcb137e7a4cedf636b97f3af2abb47402014573f138abf839885c
https://github.com/plotters-rs/plotters/pull/736/changes#diff-55d8ef24265dcb137e7a4cedf636b97f3af2abb47402014573f138abf839885c
plotters-svg/Cargo.tomlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-75149e8cbe0837e7e33ae58d7821afa242fdd1e04c927ad17b3856c5f6a07dd9
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/plotters-svg/Cargo.toml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-75149e8cbe0837e7e33ae58d7821afa242fdd1e04c927ad17b3856c5f6a07dd9
https://github.com/plotters-rs/plotters/pull/736/changes#diff-75149e8cbe0837e7e33ae58d7821afa242fdd1e04c927ad17b3856c5f6a07dd9
plotters-svg/src/svg.rshttps://github.com/plotters-rs/plotters/pull/736/changes#diff-2e9925fc5315a70c1cc3618558a1c077aacfef323bd9de61526e23382ee26425
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/plotters-svg/src/svg.rs
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-2e9925fc5315a70c1cc3618558a1c077aacfef323bd9de61526e23382ee26425
https://github.com/plotters-rs/plotters/pull/736/changes#diff-2e9925fc5315a70c1cc3618558a1c077aacfef323bd9de61526e23382ee26425
plotters/Cargo.tomlhttps://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
View file https://github.com/plotters-rs/plotters/blob/e4ec38e5212c8c21ac3891f7521eacb0fd44c53a/plotters/Cargo.toml
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/plotters-rs/plotters/pull/736/{{ revealButtonHref }}
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
https://github.com/plotters-rs/plotters/pull/736/changes#diff-77fe1d88d23077d0089a552008013adebcb160d657565ba751b1181bf6343153
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
Please reload this pagehttps://github.com/plotters-rs/plotters/pull/736/changes
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.