indygreg / indygreg/PyOxidizer
[docs/usage] Is this appropriate for gradually porting a Py project to Rust?
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 6.2k
- Forks
- 256
- PR merge metrics
- No merged PRs in 30d
Description
Hiya, I'm the author of Bikeshed, a document processing tool that most web standards are now written with in the W3C and WHATWG. It's written in py3, but I'm running into the limits of how efficient Python can be in startup and in processing large amounts of text.
I was pointed to PyOxidizer as a potential way to do a gradual port of Bikeshed to Rust, letting me replace bits of the project with Rust equivalents where they'd be most effective first, and eventually slide into a full Rust conversion. I'd been meaning to learn Rust for some time, so this sounded exciting.
However, reading thru the docs, I can't tell if this is possible, or if it is, how I would go about doing so. The examples in the docs are all relatively primitive, and none of them showcase (at least in a way I could parse) having your Python code call back into Rust. Is this possible?
Relatedly, all the examples seem to end with "and to run your project, just call pyoxidizer run --path /to/code/. The docs seemed to promise in their intro, tho, that I'd be able to produce a single executable that users could just run, rather than requiring them to install pyoxidizer themselves and then do some fiddling with an inconvenient command-line invocation to run the project. Is what I'm describing possible?
(@annevk is also managing a student for MSoC that is interested in helping port Bikeshed to Rust this summer; I thought getting Bikeshed on PyOxidizer ahead of time would let them contribute usefully without demanding they finish the entire thing to get a usable result.)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the docs/usage material and the existing examples around calling Python from a PyOxidizer-built application. Check how the documented pyoxidizer run --path /to/code/ workflow relates to gradual Python-to-Rust porting and standalone executables; done means the docs clearly explain whether both requested workflows are supported and how to use them.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python, rust
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100