Facebook malfermis la kodon por la projekto DotSlash

Facebook anoncis la malferman fonton de dotslash, komandlinia ilo dizajnita por faciligi distribui aron da ruleblaj dosieroj por malsamaj platformoj. La utileco estas desegnita por ruli skriptojn, kiuj aŭtomatigas la elŝuton de plenumebla dosiero taŭga por la nuna platformo, kontrolante ĝian integrecon kaj ekzekuton. La utilkodo estas skribita en Rust kaj estas distribuita sub la MIT kaj Apache 2.0 permesiloj.

La utileco solvas problemojn similajn al ŝelaj skriptoj por lanĉi ruleblajn dosierojn por la nuna platformo, sed samtempe forigas la bezonon inkludi ruleblajn dosierojn por ĉiuj subtenataj platformoj en la pakaĵo. DotSlash ankaŭ permesas vin stoki informojn pri la kolektitaj ruleblaj dosieroj en deponejo kune kun la kodo, dum ili metas la dosierojn mem sur apartajn lanĉajn servilojn, kio evitas la kreskon de la deponeja grandeco kaj reduktas la ŝarĝon sur la enigo/eliga sistemo dum plenumado. klonaj operacioj.

Kiam vi uzas DotSlash, la aro de platform-specifaj ruleblaj dosieroj estas anstataŭigita per ununura skripto, kiu inkluzivas priskribon de la logiko por elekti la ruleblan dosieron rilate al la subtenataj platformoj. Post rulado de DotSlash-skripto, la rulebla dosiero necesa por la nuna platformo estas dinamike elŝutita, malpakita, kontrolita kontraŭ kripta hash kaj stokita en loka kaŝmemoro por postaj kuroj. Dosieroj estas transdonitaj en kunpremita formo. DotSlash-skriptoj povas esti generitaj aŭtomate por eldonoj publikigitaj sur GitHub.

Ekzemplo de DotSlash-skripto por distribuado de Node.js 18.19.0-konstruaĵoj por la platformoj macOS ARM64, macOS x86_64 kaj Linukso x86_64: #!/usr/bin/env dotslash { “name”: “node-v18.19.0”, “ platformoj”: { "macos-aarch64": { "grandeco": 40660307, ​​​​"hash": "blake3", "digest": "6e2ca33951e586e7670016dd9e503d028454bf9249d5ff556347d3bf98d347bf34d18.19.0bf64d18.19.0 vojo": " node- v18.19.0 -darwin-arm64/bin/node", "providers": [ { "url": "https://nodejs.org/dist/v86/node-v64-darwin-arm42202872. tar.gz" } ] }, "macos-x3_37521058114": { "grandeco": 7, "hash": "blake71", "digest": "0e3f8042e8de7908305fe9115488c6fa29e514ac": "blake9", "digest": "2e24f18.19.0e64de18.19.0fe18.19.0c64fa86e64ac": " "tar.gz", "pado" : "node-v44694523 .3-darwin-x72/bin/node", "provizantoj": [ { "url": "https://nodejs.org/dist/v81/node-v3-darwin- x30.tar.gz " } ] }, "linux-x7_1": { "grandeco": 09, "hash": "blake3", "digest": "4478b1fc02a5b0bedc04a15a23fafc3a9b89212d18.19.0e64, "hash": "blake18.19.0", "digest": "18.19.0b64fcXNUMXaXNUMXbXNUMXbedcXNUMXaXNUMXaXNUMXfafcXNUMXaXNUMXbXNUMXdXNUMXeXNUMXeebXNUMXdXNUMXeXNUMXaXNUMXbXNUMXdXNUMXeXNUMXeebXNUMXd", ": "tar.gz", " vojo ": "node -vXNUMX-linux-xXNUMX/bin/node", "providers": [ { "url": "https://nodejs.org/dist/vXNUMX/node-vXNUMX- linux-xXNUMX.tar .gz" } ] } } }

fonto: opennet.ru

Aldoni komenton