Comments (7)
As an alternative to the above syntax, the config part could be specified in setup.py
as an argument to RustSingleFileExtension
(or whatever it ends up being called) rather than in the Rust file.
from setuptools-rust.
Some reasons this might be a bad idea:
- Lack of reproducibility, if lock file support is not included. Adding lock file support increases scope.
- Scaling up may become more complex since now you need to convert the current config to a
Cargo.toml
. This can likely be solved with tooling, but that's an increase in scope. - More likely to have errors (no syntax highlighting) and more difficult debugging of errors, in the
Cargo.toml
-equivalent config.
from setuptools-rust.
I think if one goes automatically generating a Cargo.lock
, one could also implement this as automatically generating (or updating) a Cargo.toml
file. The canonical path of src/lib.rs
is only conventional IIRC and a Cargo.toml
could change this to extension.rs
.
from setuptools-rust.
One alternative I just discovered to the proposal here is https://github.com/mityax/rustimport
I'll try playing around with it, and report what I've learned here.
from setuptools-rust.
It seems to me that once the cargo-script RFC is stable, it'd be a much smaller amount of work to build this on top of that.
from setuptools-rust.
So I played around with rustimport
(https://pythonspeed.com/articles/easiest-rust-python/), and my feeling is it does quite well at simplifying prototyping. And there's maybe a use case for single-file Rust that is an extension you ship or distribute, but... it feels like prototyping is maybe the bigger use case.
So from my perspective it's probably not worth spending a lot of time on adding it to setuptools-rust
, I'm happy to close this issue.
from setuptools-rust.
Another alternative: https://www.maturin.rs/develop.html#import-hook
from setuptools-rust.
Related Issues (20)
- 1.5.x sdist no longer contains examples, docs, and tests HOT 5
- build fails with "error: Rust build failed; unable to find any build artifacts" HOT 6
- Is there a way to trigger `release` target build for `build_ext --inplace` command? HOT 3
- setuptools-rust fails to cross-compile cryptography using crossenv HOT 10
- Failed to build on MacOs 13.0.1,setuptools_rust HOT 1
- can I build an `.so` without the target between the module name and the extension? HOT 2
- Setuptools deprecation warning with setuptools-rust HOT 4
- Facing an issue while trying to build setuptools-rust HOT 3
- Compilation in setuptools_rust fails with `1.70.0-nightly` toolchain HOT 3
- Python crashes on import when using pip editable install on M1 HOT 6
- Unable to control `--debug` / `--release` via PEP517 backend HOT 7
- No module named 'setuptools.command.build' HOT 2
- Document how to use setuptools-rust with a workspace HOT 2
- DeprecationWarning: pkg_resources is deprecated as an API
- Allow offline mode via environment variable HOT 7
- `install_extension` crashes due to attempt to mkdir an empty path (v1.8.0)
- With latest nightly rust, builds failing due to changes in cargo output HOT 6
- Trouble using pyproject.toml for limited api HOT 8
- Please update PyO3 to 0.20.3 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from setuptools-rust.