Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

consider switch to rust on backend #83

Open
2bndy5 opened this issue May 14, 2024 · 1 comment
Open

consider switch to rust on backend #83

2bndy5 opened this issue May 14, 2024 · 1 comment
Assignees
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request

Comments

@2bndy5
Copy link
Owner

2bndy5 commented May 14, 2024

Historically, I've tried using various libraries to generate images. But SVG rendering support has been the biggest hurtle in this regard.

Currently, I'm using Qt6 (PySide6) on the backend since it offers SVG rendering support (among other essential features like font rendering). However, Qt doesn't not execute well in headless Linux environments (see #13). Using a rust interface on the backend instead should mitigate #13 sufficiently.

I think it is worth re-writing the backend for image generation using python bindings to a rust interface (using PyO3). Useful rust libs/crates include:

  • resvg (SVG rendering lib)
  • cosmic-text (ttf rendering)
  • image-rs (generic non-rasterized image rendering/manipulation)
  • tera (implementation of a template engine similar to Jinja2 or Django)
@2bndy5 2bndy5 added enhancement New feature or request dependencies Pull requests that update a dependency file labels May 14, 2024
@2bndy5 2bndy5 self-assigned this May 14, 2024
@2bndy5
Copy link
Owner Author

2bndy5 commented Jul 16, 2024

Unfortunately, the state of parsing YAML in rust is in a state of flux at the moment.

Important

See also

Also, serializing a YAML document into rust data structs had been driven with serde-yaml which is no longer maintained (actually deprecated) without any candidates for replacement.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
dependencies Pull requests that update a dependency file enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant