The main motivation of Repox is to speedup sbt dependency resolving. But it can be used as ivy/gradle/ maven/leiningen proxy as well,as a replacement of Nexus/Artifactory.
Currently Repox only do proxying, there is no support for artifact publishing.
To get your hands dirty immediately, go Getting Start
We have tried Nexus and Artifactory open source version as private proxy, neither has brought improvements for sbt projects.
-
Proxy Everything
So that we can introduce improvments at every step.
-
Succeed fast or Fail fast
- If multiple upstream repos have the request file, choose the fastest one.
- If a connection did not get data for a long time, abort and redownload。
- Remember failed request to make less duplicate.
**Important Note: This means that repox may have more chance to “download failed”。You just reinvoke the failed command. We believe that more retry brings better experience than waiting forever. **
-
Do what a proxy is supposed to do
If a file has ever been downloaded, response immediately, without asking upstreams.
Read the wiki pages for details.
- Lightweight
Just a dozen of source code files for the core functionality, each less then 200 lines. Just a weekend's reading.
- Reactive overall
undertow + akka + async-http-client
-
Adjust configurations by web admin
-
Practical
We build Repox for our own needs and we are using it everyday.
- As Organization Private Proxy
Recommended. So that once a developer has done sbt update
a project, others' updating feels like using local repo.
- Run locally
The deployment and running are very simple,it brings good productivity too when running locally。