Comments (4)
The big trouble with such a feature is, for any crate, you also have to discover and grab all of its dependencies. Having the user manually specify these dependencies wouldn't be a good UX, and otherwise every crate that gets downloaded would need to be extracted, read its Cargo.toml
dependencies, and then recursively download them. Then you have to decide which versions of the dependent crates get downloaded; do you download them all, or just the current latest version (which might break on upgrades)?
The nice thing about using a vendor directory is that cargo effectively handles the above for you, at least to some extent.
With all that said, I'm definitely not against such a feature existing in Panamax, however I don't have the time to work on it. I'd probably accept a PR from someone willing to implement this.
from panamax.
Additionally, this project https://github.com/wcampbell0x2a/zerus might be worth looking at.
from panamax.
We were able to accomplish something similar (blacklisting) by cloning the crates.io index, filtering out what we didn't want, and then pointing panamax to that filtered index when syncing. The filter itself was fairly easy to write -- maybe 100 lines of rust. I'm not sure what your precise use case is but I hope that helps.
from panamax.
potential answer: cargo vendor
only to grab project-related dependencies.
from panamax.
Related Issues (20)
- Adjust the vendor directories being tracked (over time) HOT 2
- A way to serve the documentation for crates.io?
- Unable to complete downloading crates HOT 3
- Crate whitelisting HOT 1
- Cargo vendor failed using mirror repository
- could not resolve host:panamax.internal HOT 6
- [feature request] panamax publish my-mirror
- on Docker - error creating server listener: Address family not supported by protocol HOT 1
- not a git repository error
- how to masquerade as crates.io HOT 1
- [Enquiry] How big the full mirror is? HOT 3
- [Question] Can I start sync while the panamax is serving? HOT 2
- How do I download WASI and WASM targets ?
- [BUG] inconsistent state may occur HOT 4
- Mirroring Vendored Crates HOT 1
- No config.json HOT 4
- Unable to `cargo search` against panamax mirror HOT 2
- [Question] Use S3/minio to host /mirror? HOT 3
- Request: release a new version containing the fix for filtering unix platforms HOT 1
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 panamax.