同元 Julia 包服务器

基于自身业务发展需求,同元现在计划对外提供一套公共的包服务器用于加速国内的下载体验。

简单来说,你需要设置 JULIA_PKG_SERVER 环境变量为https://releases.tongyuan.cc/juliapkg/original 即可正常使用。
关于如何设置,你可以参考阅读 Julia PkgServer 镜像服务及镜像站索引

以我的 macOS 系统为例,全新安装 Makie 所需的时间为:

服务器 时间 缓存命中
同元包服务器 212s 部分命中
同元包服务器 44s 全部命中
北大镜像站 41s -
time env JULIA_DEPOT_PATH=$HOME/tmp JULIA_PKG_SERVER="https://releases.tongyuan.cc/juliapkg/original" JULIA_PKG_PRECOMPILE_AUTO=0 time julia -e 'using Pkg; Pkg.add("Makie")'

换句话说,同元服务器在缓存命中的情况下的使用体验接近于高校镜像站。另一方面,由于该服务器与同元自身的商业化产品有关,因此我们将非常关注它的可靠性和长期的稳定性(除非同元凉了 :frowning_face:


实际上,通过同元包服务器你可以获取到同元对外发布的函数库,例如 TyRandom 提供了与 MATLAB 近乎完全一致的随机数生成:

(@v1.7) pkg> add TyRandom
    Updating registry at `C:\Users\jc\.julia\registries\General.toml`
    Updating registry at `C:\Users\jc\.julia\registries\Syslab.toml`
   Resolving package versions...
   Installed TyRandom ─ v0.1.2
   Installed TyAPI ──── v0.3.8
    Updating `C:\Users\jc\.julia\environments\v1.7\Project.toml`
  [e1161ee3] + TyRandom v0.1.2
    Updating `C:\Users\jc\.julia\environments\v1.7\Manifest.toml`
  [47291b8a] + TyAPI v0.3.8
  [e1161ee3] + TyRandom v0.1.2
Precompiling project...
  2 dependencies successfully precompiled in 1 seconds (10 already precompiled)

julia> using TyRandom

julia> rng = MT19937ar(1234)
MT19937ar(1234)

julia> rand(rng, 4, 4)
4×4 Matrix{Float64}:
 0.191519  0.779976  0.958139  0.683463
 0.622109  0.272593  0.875933  0.712702
 0.437728  0.276464  0.357817  0.370251
 0.785359  0.801872  0.500995  0.561196
>> rng(1234)
>> rand(4, 4)

ans =

    0.1915    0.7800    0.9581    0.6835
    0.6221    0.2726    0.8759    0.7127
    0.4377    0.2765    0.3578    0.3703
    0.7854    0.8019    0.5010    0.5612

所有同元函数库都记录在 Syslab 注册表中:

(@v1.7) pkg> registry st
Registry Status
 [23338594] General
 [fe1a5c12] Syslab

如果你发现 Syslab 注册表不存在,你可以通过删除来重置注册表(如 pkg> registry rm General)。

Syslab 注册表取名于同元的商业产品 Syslab ,欢迎试用我们的产品,我们知道有很多有待提升的地方,大家都在积极的开发中。你也可以通过Syslab 用户文档来找到一些可能对你有用的函数库或函数。

同元 Syslab 软件内置的包服务器地址与上面的略有不同,为:https://releases.tongyuan.cc/juliapkg (注意没有 /original 后缀)。我们称带 /original 的为社区原生版包服务器,同元自己的包服务器在社区原生版的基础上做了一些额外的"魔改"工作,例如:当你安装 PyCall 以及 FFTW 的时候,你会安装同元内部的版本而非社区的公共版本。我们不确定这些魔改是否都是你所想要的,因此对于非 syslab 用户但是又想要使用同元包服务器的 Julia 用户,我们推荐您使用 https://releases.tongyuan.cc/juliapkg/original 这个原生版本。


FAQ:

  • 下载服务器有区域性缓存:当你是周边第一个下载某个包的用户时,你会发现下载可能会比较慢;而第二次下载则会比较迅速。
  • 定时同步周期大约为每两周一次:这不是技术限制,而是我们故意希望落后社区一些版本来为我们自己留有一定的处理上游最新发布问题的时间。
  • 当你使用同元包服务器的时候,同元会获取到你的 ip 、请求下载的内容用于数据统计和分析的目的。(请放心,我们不会知道你叫什么名字;我们也没有兴趣知道;我们只想知道例如哪些是最热门的包)
6 个赞