{"_id":"@git.zone/tsrust","_rev":"31-9ba9f6810fdec6fc3e940e9d46b590b1","name":"@git.zone/tsrust","dist-tags":{"latest":"3.0.0"},"versions":{"1.0.2":{"name":"@git.zone/tsrust","version":"1.0.2","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.0.2","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"17c216915b58ca853a691bf39025f979d9b0a176","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.0.2.tgz","fileCount":36,"integrity":"sha512-6B2EtPOC04APsVlxmI9nDQYeDAFhcQmKQSsePc7H82O4vNftmOyvpUnwIWEvYBEmlb1b+iUd5iqzgVqBJ1FOBQ==","signatures":[{"sig":"MEYCIQCTzNzK18Kngsa/YWYXrvIZzE8N88qVz9elYtWlqWUxLAIhAJSKoogK1QmKTpoTGdMq7QUgDaRpmESUxLEeH1GSxsKT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53148},"main":"dist_ts/index.js","type":"module","gitHead":"1551f0bb4570ed6ead0ce0f4f4c02aae8eb5f39c","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web --skiplibcheck"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.3.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.19","@push.rocks/smartfile":"^13.1.2","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.0","@git.zone/tsrun":"^2.0.1","@git.zone/tstest":"^3.1.4","@git.zone/tsbuild":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.0.2_1770629639434_0.8789935258817207","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@git.zone/tsrust","version":"1.0.3","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.0.3","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"286dc67f2d9a14e6e0a799fe94b1736eddf1e9f4","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.0.3.tgz","fileCount":36,"integrity":"sha512-xNCHlipkzNh0uH/oYQ+hlCkF9RX4+FQH2ELJJNNcESzcgMfkO07Sg6KgzjBbA2LYLBYiXmi1871vwmYk0WiykA==","signatures":[{"sig":"MEYCIQDB6TzZUfE3wUO/Go2Hz7KdWjxXtrt6bc48Cz9yH+n9/AIhAM02u7ce/TI6T4uWtrztx5Y+Dt1Lkphh7GOl4Od55AJn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":53148},"main":"dist_ts/index.js","type":"module","gitHead":"7a80cc8a7aca16fb23642037b2fb9a16bf945d73","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web --skiplibcheck"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.3.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.19","@push.rocks/smartfile":"^13.1.2","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.0","@git.zone/tsrun":"^2.0.1","@git.zone/tstest":"^3.1.4","@git.zone/tsbuild":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.0.3_1770643721556_0.170825426303282","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@git.zone/tsrust","version":"1.1.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.1.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"ab147b338ffb89f3aadd956bf9d3ef923dfebb44","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.1.0.tgz","fileCount":36,"integrity":"sha512-zJoChhWqsHte/BG13Tr0vMdvS2X2H4mqh5mHJJICuMXopNw3lEgendUySYj/9OjpYGLyAFKECTr9DZGks+AqKg==","signatures":[{"sig":"MEQCIBSDSkB/2ojgEaaN93NRv3GU+ntkDv7Ng/E0NwQ91M87AiB+SfLHGBhrpWWaLf6h2QxAON4FYg3JEEsvk/XY8oCRmg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":67957},"main":"dist_ts/index.js","type":"module","gitHead":"97cfcac82fa7b4be5252b6fd2f78de2a653a57c4","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web --skiplibcheck"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.3.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.19","@push.rocks/smartfile":"^13.1.2","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.0","@git.zone/tsrun":"^2.0.1","@git.zone/tstest":"^3.1.4","@git.zone/tsbuild":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.1.0_1770661798205_0.96897590861806","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@git.zone/tsrust","version":"1.2.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.2.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"50c35534ed7763a9a7d6ceabd0481b7adcfcb342","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.2.0.tgz","fileCount":36,"integrity":"sha512-vBh1t4FFFxm82QccTr50ZMeik6Ks2TZZpIl1bAc+IFX7dJxWj3r9Lkm3Qz9lU0oUgWpDJBHxllSkcGz7UFo0rg==","signatures":[{"sig":"MEUCIQDCCqBk8+BNBT9zjPNZ2fLJoquxDe+gw64uOegKc0cuGgIgSkxMSYWQ9+DitPOja2JpCgrzOD0YH5q9TnpURzMO58k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":69626},"main":"dist_ts/index.js","type":"module","gitHead":"18dc4c3a7930b95262b3064a293265fbab51ee6d","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web --skiplibcheck"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.3.1","@push.rocks/early":"^4.0.4","@push.rocks/npmextra":"^5.3.3","@push.rocks/smartcli":"^4.0.19","@push.rocks/smartfile":"^13.1.2","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^22.15.0","@git.zone/tsrun":"^2.0.1","@git.zone/tstest":"^3.1.4","@git.zone/tsbuild":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.2.0_1770668707069_0.9217270745394572","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@git.zone/tsrust","version":"1.3.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.3.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"eb1c11bb481f3b3ab4ffee722c0d47ef1e83832d","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.3.0.tgz","fileCount":42,"integrity":"sha512-dvmTAiM04Pkd7J1Gail3fu7aasmILQhC5vKL71/g6HYhpvl16/c+Dj3We5G4HsFr0jvAr+Xu570ZGEuZrtRcCg==","signatures":[{"sig":"MEUCIQDd6v3iGfQNgNJRxMLMRPEWbo78wBGGX+Vfd99amg4zSgIgfMqlHxigkk/9UntkyzBdkEKhl8xuaT4qSHQchg1qFSw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87140},"main":"dist_ts/index.js","type":"module","gitHead":"e9ad5775a12b0ed01573df870e326e0b02393788","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web --skiplibcheck"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.3.1","@push.rocks/early":"^4.0.4","@push.rocks/npmextra":"^5.3.3","@push.rocks/smartcli":"^4.0.20","@push.rocks/smartfile":"^13.1.2","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.0.6"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.2.2","@git.zone/tsrun":"^2.0.1","@git.zone/tstest":"^3.1.4","@git.zone/tsbuild":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.3.0_1770670681529_0.4610100095593661","host":"s3://npm-registry-packages-npm-production"}},"1.3.1":{"name":"@git.zone/tsrust","version":"1.3.1","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.3.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"2d2e5c6c1acafa04883d907d69721bdf54e527f7","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.3.1.tgz","fileCount":42,"integrity":"sha512-TKnjIQpXyLRwQxFbF7+qqYOa9jfjq0Bi/qEUpn23zrern/SjGw1FyEVKx+2OkXc7NwBeL03gYZ6Jn8hKjIS2aA==","signatures":[{"sig":"MEUCIQCkMM86GPQtXGMOFhGy7RWFGELRQVAYunexEZw6sTJCDQIgM3oV3mdmmASEv7y2zZ3lhQ7jeYuBpYfq3GFxjQjoY5E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87200},"main":"dist_ts/index.js","type":"module","gitHead":"838b3a9feb01ff4c7345cd27bc5e2fc86e11e7f9","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web --skiplibcheck"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.3.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.20","@push.rocks/smartfile":"^13.1.2","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.0.6","@push.rocks/smartconfig":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.2.2","@git.zone/tsrun":"^2.0.1","@git.zone/tstest":"^3.1.4","@git.zone/tsbuild":"^4.1.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.3.1_1774364872596_0.8985781419593484","host":"s3://npm-registry-packages-npm-production"}},"1.3.2":{"name":"@git.zone/tsrust","version":"1.3.2","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.3.2","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"409a39f255ed9efeb9cbe6b595a7c1f1ac111b1d","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.3.2.tgz","fileCount":42,"integrity":"sha512-bUGomPk++He47Q6rnd9bihX6qoYtXgp9BtroBnNADk3q8WGyHivAcPwqIe4Bk32eByzW1Acc37u/h5gb/V8ekA==","signatures":[{"sig":"MEUCIDPCv6u4IbSodIrWq3ITtlA/JX34nuOX3JDiZ49I6k30AiEA2XyKu37o56hw2+Q45AbGtaHu0A3rFT95KSN6zrEHEjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87223},"main":"dist_ts/index.js","type":"module","gitHead":"57bf6e16709033632824874182e8ce0316be7224","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web --skiplibcheck"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.6.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.20","@push.rocks/smartfile":"^13.1.2","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.3.8","@push.rocks/smartconfig":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.5.0","@git.zone/tsrun":"^2.0.1","@git.zone/tstest":"^3.5.1","@git.zone/tsbuild":"^4.4.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.3.2_1774378948464_0.9170633176471146","host":"s3://npm-registry-packages-npm-production"}},"1.3.3":{"name":"@git.zone/tsrust","version":"1.3.3","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.3.3","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"20e01ce78e67661f26519dc7c3dd328bb1fea386","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.3.3.tgz","fileCount":42,"integrity":"sha512-PYz6patukobgNDZl24S7EGEvNk1OC02f2xz4vZghwZc6ApqPK317FhuizEtqIIbp+or6siC79oXOUWRtI1pKbg==","signatures":[{"sig":"MEYCIQCxHQMIGGCzfnjHj8n/0x2ptFiAn019+DaZ95QWdfcs7wIhAMXzpWqX+VWUNSjFUIe74kb9+xENeI8J4odRVeYYCmHU","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87208},"main":"dist_ts/index.js","type":"module","gitHead":"e178fd8a73fb5bd7bfef80c4905ac8cef0383b6b","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.6.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.20","@push.rocks/smartfile":"^13.1.2","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.3.8","@push.rocks/smartconfig":"^6.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.5.0","@git.zone/tsrun":"^2.0.1","@git.zone/tstest":"^3.5.1","@git.zone/tsbuild":"^4.4.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.3.3_1777553663331_0.9261695056391817","host":"s3://npm-registry-packages-npm-production"}},"1.3.4":{"name":"@git.zone/tsrust","version":"1.3.4","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":{"name":"Task Venture Capital GmbH"},"license":"MIT","_id":"@git.zone/tsrust@1.3.4","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"cli.js"},"dist":{"shasum":"27b94b77ccf40ea0f4ab60f01bf9e20fbd70be23","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.3.4.tgz","fileCount":42,"integrity":"sha512-2ibr1csXqJwxTue7iBNrvy4wEmmOOVBVICwS0piBkW/6ZRVyGoOXpWnZQm3mFmjGnPhy0CdRK7zYnFLkYXe0VA==","signatures":[{"sig":"MEUCIQD3rxDl4k1NPU8yxmxycOPYWyRmIMUW5fna3gwL+oYJCgIgcs/drPEqMHsEHOnROMqBGzj3iOnch8fB73xKT/1G1bM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":87203},"main":"dist_ts/index.js","type":"module","gitHead":"d977f5c238833b19f4952abe7c60c149c4900d93","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"_npmVersion":"11.7.0","description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.6.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.3.8","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.6.2","@git.zone/tsrun":"^2.0.3","@git.zone/tstest":"^3.6.5","@git.zone/tsbuild":"^4.4.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.3.4_1778330035000_0.13600606669278825","host":"s3://npm-registry-packages-npm-production"}},"1.4.1":{"name":"@git.zone/tsrust","version":"1.4.1","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.4.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"4b440c414f397d0c3a4b3de791e4fb86e555ae1a","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.4.1.tgz","fileCount":48,"integrity":"sha512-uvJBEtAuHXKNYLEeXZoaml8Lh60gw4ejZVMARl7g0z1Vmb9ku0BtuBU4etdeSKFL3Gp+DuWN4SlYR2mXHRW30A==","signatures":[{"sig":"MEUCIQCllBnL45mUymyyrgke7e8rWxcmBedfHzbNVjxyR9u/+AIgSvXL8dLoL+C2kKBDRYEWRWubyHvaRn9v+oM6RlNxoXE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":105276},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.6.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.3.8","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.1","@git.zone/tsrun":"^2.0.4","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.4.1_1781046200878_0.8711227509721653","host":"s3://npm-registry-packages-npm-production"}},"1.5.0":{"name":"@git.zone/tsrust","version":"1.5.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.5.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"e1fc818dc6ed4a4f3b6f0e6aba36578bbd36dde9","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.5.0.tgz","fileCount":48,"integrity":"sha512-HkZCIQ8/TON/sfJGV8CWreNZJ1HDoA1+sw1jqGAE0yAxcQpC7hPSGdeFFHLjPyYRwAp9cB0qOOmOb6W5trhZBg==","signatures":[{"sig":"MEUCIB/ScVzzQno+63Ed1MYApUA5mUpeH9zaGO5aVATn6QbDAiEA8ZzxzJz0+jOgEfQvha2XYBEjbnXPgzYxkzoUThI79ZU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":110695},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.6.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.3.8","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.2","@git.zone/tsrun":"^2.0.4","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.5.0_1781601236641_0.9186884479484452","host":"s3://npm-registry-packages-npm-production"}},"1.6.0":{"name":"@git.zone/tsrust","version":"1.6.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.6.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"91c5be0242b2da0ae98aeccb704a5b9cf2fe1297","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.6.0.tgz","fileCount":51,"integrity":"sha512-ctq3GUoBs4RoI8vklFpayvp2eFjNAXPIyk6cQGa9FMuipKhi3r/fNw2MGkvy0j8L84E1BmFPrRotpVTvbzsYvw==","signatures":[{"sig":"MEQCIEfvdCt6gU630CqQzX5vw4Ou62mIwyTTmjfSQRx4ZUL/AiAUHu1icdgfP4vz+11w8r8J/D5hhTiQUtuBEhxQpIuXAw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":154335},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.6.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.3.8","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.3","@git.zone/tsrun":"^2.0.4","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.6.0_1782160537491_0.7828313934884867","host":"s3://npm-registry-packages-npm-production"}},"1.7.0":{"name":"@git.zone/tsrust","version":"1.7.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.7.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"517e9013df88de61e74d2461822a115154f0c2be","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.7.0.tgz","fileCount":54,"integrity":"sha512-xgSL8c7f2deH6qjqHKH+z0pUq3j8cM7/WbzcraEiPnbz4QZ4pULnfUWKZqI0QahKyOcpG06S8YLTw0q2/KJ5YQ==","signatures":[{"sig":"MEUCIQC5pjEo40JnbOT+QwOqQzBjALeH/PSVND9/LtQuQoh+6AIgGW/7surYlBtTppTMH7dlKcX6sDuq8ZOxXjkqV2+KxWk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":171764},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest test/test.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.6.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.3.8","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^25.9.3","@git.zone/tsrun":"^2.0.4","@git.zone/tstest":"^3.6.6","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.7.0_1784667004931_0.8834485191302213","host":"s3://npm-registry-packages-npm-production"}},"1.8.0":{"name":"@git.zone/tsrust","version":"1.8.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.8.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"f583130894ce5ae77561a56d2bb2131748d27d7f","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.8.0.tgz","fileCount":54,"integrity":"sha512-6wMR2kk35thlq+EQBszcQiDXHKQOQ3RBReSOH6hyXA8DkIuLb49ah7179tT3JATDPaHxF7r1Rt6fiJWPYoUB6w==","signatures":[{"sig":"MEUCIEA4Q6D6JBNQ3L8oUSWpc3yqmJ2qAyt8vkdx6gJ4oSd2AiEA6/s3pBlOzdcGu+B55u+w1Q/c5i+iSv4Eba3CBGsZX1g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":172792},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest test/test.node.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.6.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^3.3.8","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.2.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.8.0_1786403533708_0.23217178943809236","host":"s3://npm-registry-packages-npm-production"}},"1.9.0":{"name":"@git.zone/tsrust","version":"1.9.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.9.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"3a0296ef15cfd0c585e1d02ed7822e23fa199e29","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.9.0.tgz","fileCount":75,"integrity":"sha512-kkAff/pJxoZwwxPTjvTD0aIgYoGVauleBkny/oD/BBEP9nO7athfgqiteeF4lb6cSHXkXh21Og/zdAmKn2nlHQ==","signatures":[{"sig":"MEYCIQDNE9uXYvfhmlQrYCgYWSym4J5Mk0khWXhQXYzPF1zswQIhAMEgrmigTiKfB7hfsNpzp+5dk+RbcXU5rdSVXjMRmpdf","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":363866},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest test/test.node.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.2.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.9.0_1787063643561_0.21598877298005026","host":"s3://npm-registry-packages-npm-production"}},"1.9.1":{"name":"@git.zone/tsrust","version":"1.9.1","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.9.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"26d694c60d47a66728041eade3ca21c28ae4f4f6","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.9.1.tgz","fileCount":78,"integrity":"sha512-3FSuy8ugfbPADwEI2OWpb2N5FHqSCHZSPndiSIkGOFZSxUKDx6Brm8+WNMdCLb9NXTfUpdag0BtxlwAJfXFxgg==","signatures":[{"sig":"MEUCIQCUWRDiY2b9B8tIZQGZHqDQZerX5sBLvntzK7oBsgeaGgIgHIn8kwaw+OqCM+cozW3Y5NblF5USXQ3ad2Kny5ZJlks=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":372878},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest test/test.node.ts --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.2.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.9.1_1787069830664_0.672770166993103","host":"s3://npm-registry-packages-npm-production"}},"1.10.0":{"name":"@git.zone/tsrust","version":"1.10.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.10.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"652f00dd019002126455ac3db5ffde29cdb6bbaa","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.10.0.tgz","fileCount":90,"integrity":"sha512-dpNYYKQRJqiWlEs+w3qKNODIPDyOEy4xO6+Z56wKdVF2HjLkcgm4Ar1lAZtL5+XL0qX6wx7YXoJeyKB7S8wO5w==","signatures":[{"sig":"MEUCIDjVmFk88iW+nXNomaSXWdle8T9fBZTlTr3E3C/sT8NJAiEAopQy/vV4XM3GibJAlqOM3IXn3vt782GCzN6vk3iKsdY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":672929},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.2.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.10.0_1787175480139_0.317859720818648","host":"s3://npm-registry-packages-npm-production"}},"1.10.1":{"name":"@git.zone/tsrust","version":"1.10.1","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.10.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"f18d1d58c997b1d7d223d912246321fcd59cd41c","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.10.1.tgz","fileCount":90,"integrity":"sha512-Q138hHnNimneWfLW67voanVeFNC68/5MTOHGLUxEmp8/XGvSnVVTUi3G3XgfS9AoRqAzwlkrBnlzbl61ASfuKw==","signatures":[{"sig":"MEUCIBEjCXI9K9o42CvsSlyEFrMnrlyGA2zSzEwjaP+++o8yAiEAhTqgc8PbZLsu2j9mlBT/AaASK2tQ6Bgxf4y4Z5TY93w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":673377},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.2.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.10.1_1787712084981_0.6606487574717019","host":"s3://npm-registry-packages-npm-production"}},"1.10.2":{"name":"@git.zone/tsrust","version":"1.10.2","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.10.2","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"cb6f29bdb6715e90d5717ec6366f24d61c8ba330","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.10.2.tgz","fileCount":90,"integrity":"sha512-rFntDKAxySrKFlPb2MLvPP4AjIWDxIceqzTAwyP6GYtIS4ayzzGDXas646ntuD0PEXUELKVo3f/7lvmKm0BiUg==","signatures":[{"sig":"MEUCIAeF3yy/Z0XaLahpWNh3HfoGXL+hyDQ0RuNcDiG2A/5sAiEAo7T0QBnmQGKK8GspJNhmnOXkSZ+7+BApAfZnGSvlhbc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":680559},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.2.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.10.2_1787717566539_0.7475220227828931","host":"s3://npm-registry-packages-npm-production"}},"1.10.3":{"name":"@git.zone/tsrust","version":"1.10.3","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.10.3","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"ceb30d1f6082caba3a647ac5b9819db46e2b387c","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.10.3.tgz","fileCount":90,"integrity":"sha512-vL+u8SnZ7jhekSuhwmG+/ebNQ6hc6qcrzNf71Vp2KO1ockFZ9w4VU7l7ykqskN5yaO4tun1tVHR4r03aIuQMuA==","signatures":[{"sig":"MEYCIQCycj+Kal+DoNIwvsr6FOWv30XWFI8dhn31Iw8eqH6CUgIhAP8fF2He3Smu6gM8NBO3DvQz4msWzdhK23qyb2xmGEjq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683484},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.2.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.10.3_1787722053973_0.009430634014086836","host":"s3://npm-registry-packages-npm-production"}},"1.10.4":{"name":"@git.zone/tsrust","version":"1.10.4","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.10.4","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"d6e0f3df00e69b4142538d4c60998108b727d1ca","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.10.4.tgz","fileCount":90,"integrity":"sha512-wtAGqROIlfDUV+VcQFjDfpkYaQWDq9RzCwd2KeB1rslsPhJ7TzeeiIYcenRXgR+tcTEe9+J4hvri2wM4Ey4HSg==","signatures":[{"sig":"MEQCIAl0WyWJsNP/FR9V7bkQ0+Man2WIJjirpFdqYGZR/h3AAiBTDS+oL6GxhqAY52biIDgq2DlrIaC5SrolbQAQeTVzJw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":683486},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"_nodeVersion":"25.2.1","browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.4.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.10.4_1788360226936_0.20102495531567044","host":"s3://npm-registry-packages-npm-production"}},"1.11.0":{"name":"@git.zone/tsrust","version":"1.11.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.11.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"65d7dd4b1e751d51f6595af6abc3337d43597d42","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.11.0.tgz","fileCount":93,"integrity":"sha512-o2Wj2wI3gByuzx3tZeceHxMNYz1BpDtkSk2ikrIs8e1XR2c2EpBkK0Lb7WS7Vr3OuF3TCqFyspYrTuAeQZ8yhg==","signatures":[{"sig":"MEYCIQCb5h1+PXLs132YTbFclN5LW9UOg29TMRwbPSUZ/jEdyAIhAOZN71bgXX2mLEQD/vNBpCCdOvQlNa5GeocXFTLByYfA","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":700417},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"^26.4.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.11.0_1788653516085_0.452352851573278","host":"s3://npm-registry-packages-npm-production"}},"1.12.0":{"name":"@git.zone/tsrust","version":"1.12.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.12.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"2a3f54ca78906d1ed384fd372afd976655205bfb","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.12.0.tgz","fileCount":93,"integrity":"sha512-lSXwc2aClaMymm8duZcMkwnu/830r2lVKYFjFtzO9zu+xCeMisx930C0C/vQHOruK5fXtgMWm7mQOgBzoQtxjw==","signatures":[{"sig":"MEQCICt1oZWTUevGFu5FhCf2pEoh0UNxAHti5HX7VX2FqqfZAiA1x7dg2/7fGAUU6fJLyPNh0NAq8E7VfgmYbYh2hcZGNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":708604},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.4.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.12.0_1788865459988_0.9268800835204736","host":"s3://npm-registry-packages-npm-production"}},"1.13.0":{"name":"@git.zone/tsrust","version":"1.13.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.13.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"80414439766364534a88b4e8a98cf5d1d75ac5bb","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.13.0.tgz","fileCount":93,"integrity":"sha512-6GMKPiBz6PsVPlom8G83XTXTp/oKDW2MLJGluTsHR6h+iVEwUvRyS2Tvvmu43S7z2o/KuHSWaqI/ckA4UOM7Sg==","signatures":[{"sig":"MEUCICQih7F3HB6K1doJLktPN82gaFm/XqBrxV8cGrZ9syEyAiEAj/JtxoerYXD+8iAQbr5z3cSy89bBXINrJypF3VSQOnQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":711434},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.4.0","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^4.0.0","@git.zone/tsbuild":"^4.4.2"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.13.0_1788873146635_0.9985070327603538","host":"s3://npm-registry-packages-npm-production"}},"1.13.2":{"name":"@git.zone/tsrust","version":"1.13.2","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.13.2","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"cea8a2ccea5d15f19461f82bc048b7c1572d8681","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.13.2.tgz","fileCount":95,"integrity":"sha512-k1/mmDZqTNCorqr9j5kQcySoCR8pHwuNlmW7xr5ZHMYM9gLrbmKjIbH7elxS4MnVszs5GBw0Qk5j2Vgml6LW5Q==","signatures":[{"sig":"MEUCIF+hyQ5HINrqRXadAPePo9qR8Zvx/ziOyOp+UKLEhpiUAiEAyzb0zXxE4vcRNhg52AcWVTXXUCv9JQEuXZB5PUrBmAM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCBgdd3U0BAUzoG1sWcimsiX5QPJE2qONzkgDfmVaamNQIgOC6Ke0g5kIKQzhcl5YEM3Ty/7b93wAQ4okvKuxmul7g=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":734394},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.5.1","@git.zone/tsrun":"^2.0.6","@git.zone/tstest":"^6.1.1","@git.zone/tsbuild":"^4.5.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.13.2_1789897263415_0.22867369986995723","host":"s3://npm-registry-packages-npm-production"}},"1.14.0":{"name":"@git.zone/tsrust","version":"1.14.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.14.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"b4b246218697d236a92b575d2ec7ca837970d87d","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.14.0.tgz","fileCount":126,"integrity":"sha512-UenTIWS1XqNc+0GHCRglBBfNJUKTdE7VxBlKwEzAK04zcG5GoRWDo5x+JvO8UrXq8X28fYjtgyoqXp2Y5lPBiQ==","signatures":[{"sig":"MEUCIBS3aCLtKGbyrZfOXTOAUfjiv5u2VFyQ5u9mU0O7UwE5AiEAhIMgklXTOapRYJM4mpgBsz/TUBNY+/Bg8kOgrruqEIU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDbf86oP4gbMjZUP5x2ulyekHDCzu3FHKO7bqPyuEZeHQIhAObVZ28Xj+0j8UEigmHUdXLSdgYMO3qqN5Y9Fd9k4xAS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1085067},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.6.1","@git.zone/tsrun":"^3.0.0","@git.zone/tstest":"^6.2.0","@git.zone/tsbuild":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.14.0_1790289129294_0.7170148445375777","host":"s3://npm-registry-packages-npm-production"}},"1.15.0":{"name":"@git.zone/tsrust","version":"1.15.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.15.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"98b6699f86195dd7932cfcf14147d16704990ae3","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.15.0.tgz","fileCount":126,"integrity":"sha512-XfTJujOy5nXERCAEG6EOj/rfYbBXSzRsLg2Z/xGkPuUZNM2buADCCzF8fs9rUHgvifzt/ceIC2RyvAOUdz8ueg==","signatures":[{"sig":"MEYCIQDyP1V8pWwYEsfPLQJGIqiXqWP7gspqz7xLMBJpkF5dJwIhAIt2bzqxD5yoPjGVM2NHJLa9Sh+3Uuw/Ho3HK3imO2Bt","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQC4xumGVkqacnXSY1sC9IOxjEI5olgiuOZscDYCU6fvFgIhAOCRITuTIhK1tSm97TFq9JsbIUmwgKgu2iyEIlI1Vw9y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1100453},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.6.1","@git.zone/tsrun":"^3.0.0","@git.zone/tstest":"^6.2.0","@git.zone/tsbuild":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.15.0_1790327478357_0.970905384892828","host":"s3://npm-registry-packages-npm-production"}},"1.15.1":{"name":"@git.zone/tsrust","version":"1.15.1","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@1.15.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"0dffa116032651970e6213ea30f8d6bb02697246","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-1.15.1.tgz","fileCount":129,"integrity":"sha512-J7B5IrmIt6mE9T/SHGxzATvYQSpTrn0z2cEeeJtbeQEDxy/2rumra4fS8tjzuWxVHuET5HdlW/rILD9vc6fDLg==","signatures":[{"sig":"MEYCIQCEam+ao0GklSnCKgqMZjkqj/LYEPb5SRwwNj/WQh8m+gIhAOrlHnQNeuydTaI9jmX6/Mk1tbn4dMg+CiTzSbJ5Ykg6","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDnv41A3+2lju7yJWKKfwOI4LjWewHJdVGOcfmAe2aUVgIgNIwDUyEW08QFBYJP28DhyUfzKw9OxHH/cuhF2gjOnC8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1119023},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.6.1","@git.zone/tsrun":"^3.0.0","@git.zone/tstest":"^6.2.0","@git.zone/tsbuild":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_1.15.1_1790350815491_0.6780522045135668","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@git.zone/tsrust","version":"2.0.0","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@2.0.0","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"e62acce0224dd70025294143f2c19d2c3d395295","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-2.0.0.tgz","fileCount":138,"integrity":"sha512-0uG/bsSEXTAMeg3UjbJnBu608XyE2AN/vkDykoOzV55pzSeePeXH6m4nS6rt/6IXKSHs/NAy1uEPDHFZgYodxQ==","signatures":[{"sig":"MEYCIQDyHFX8WXYB00GPCCSvOrbGO54gXJXfB4X974yhWesP0QIhAJB/qyaDfPPROev1TUiTlbn5/1APF8bW8qZpfuBCZSA+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCK5qNNfWSyFYIr0ZQCoTfY8DzONkHndLAHIxfp/SY12wIhAKaoUNmeoXl3iiCsBfOUnKthPvlEGu6dFHqkmxy1AzOv","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1293502},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.6.2","@git.zone/tsrun":"^3.0.2","@git.zone/tstest":"^6.3.2","@git.zone/tsbuild":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_2.0.0_1790694745326_0.315858202424137","host":"s3://npm-registry-packages-npm-production"}},"2.0.1":{"name":"@git.zone/tsrust","version":"2.0.1","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"author":"Task Venture Capital GmbH","license":"MIT","_id":"@git.zone/tsrust@2.0.1","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"homepage":"https://code.foss.global/git.zone/tsrust#README","bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"bin":{"tsrust":"./cli.js"},"dist":{"shasum":"00d2af666967abf84794d0cdb67fd846e2f9e40f","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-2.0.1.tgz","fileCount":138,"integrity":"sha512-Z4QHYXBcA04yaBC5j1wTAJUHrlCAVteRcYdDNEn7zdJeIo2JfSQtwSlnxLbNXZeUFHvs0K4L3AnYcz2O4+By1w==","signatures":[{"sig":"MEYCIQDnk8CoanvjIe+wPj3ZwIzU5fhXTbuFlqdQNZ3CHXilTgIhAMULFBx/fTOWxkW16UXFMcMnWPpmF3pZ4BpIXfm0WSJK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEMCIDBAonU0DH4u9RHIVdA1G9Kvf2+dKG9nzGoxaGJKg1ncAh81GgZSVf7TeKAfF2/64qL64C80rU+cz/LPDYJylQbc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1293578},"main":"dist_ts/index.js","type":"module","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartcli":"^4.0.21","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.6.2","@git.zone/tsrun":"^3.0.2","@git.zone/tstest":"^6.3.2","@git.zone/tsbuild":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/tsrust_2.0.1_1790755694329_0.03938442138742704","host":"s3://npm-registry-packages-npm-production"}},"3.0.0":{"_id":"@git.zone/tsrust@3.0.0","bin":{"tsrust":"./cli.js"},"bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"dist":{"shasum":"1705fd0a1c72ffeabf950bd5bd0b58a211243c37","tarball":"https://registry.npmjs.org/@git.zone/tsrust/-/tsrust-3.0.0.tgz","fileCount":138,"integrity":"sha512-H309JCNxp5b3IIQAKHMcbUnBk7r72e/4vQg+M23CKmMizBNDxjuY078lfVxQ566qDUUHClX/JcszaO2FU8hSVw==","signatures":[{"sig":"MEQCIAgJ9FDuMHiOUSBu4XOH+SsaXTIa7eszPTUmmuaAhXz2AiAxx72UGF+hbWJOlxzL6oAmwf+jL+5f4nW1J5at/L3h3g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCICQyQEgeJYzaqCOjpB48pPbvD26BdETsoI20PnzJIWK+AiEA06Q5Ip5QJlzcKAVUaN+918NOOPFd+gSXboweTjV2/Lo="}],"unpackedSize":1296000},"main":"dist_ts/index.js","name":"@git.zone/tsrust","type":"module","author":"Task Venture Capital GmbH","license":"MIT","private":false,"scripts":{"test":"tstest 'test/*.node.ts' --verbose","build":"tsbuild --web"},"typings":"dist_ts/index.d.ts","version":"3.0.0","_npmUser":{"name":"lossless","email":"hello@lossless.com"},"homepage":"https://code.foss.global/git.zone/tsrust#README","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","directories":{},"maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"browserslist":["last 1 chrome versions"],"dependencies":{"smol-toml":"^1.7.1","@push.rocks/early":"^4.0.4","@push.rocks/smartfile":"^13.1.3","@push.rocks/smartpath":"^6.0.0","@push.rocks/smartshell":"^4.1.1","@push.rocks/smartconfig":"^6.1.1","@push.rocks/smartconsole":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/node":"26.6.2","@git.zone/tsrun":"^3.0.2","@git.zone/tstest":"^6.3.2","@git.zone/tsbuild":"^5.0.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/tsrust_3.0.0_1790889208604_0.05813639368494439"}}},"time":{"created":"2026-02-09T09:33:59.371Z","modified":"2026-10-01T21:13:28.922Z","1.0.2":"2026-02-09T09:33:59.601Z","1.0.3":"2026-02-09T13:28:41.690Z","1.1.0":"2026-02-09T18:29:58.397Z","1.2.0":"2026-02-09T20:25:07.233Z","1.3.0":"2026-02-09T20:58:01.662Z","1.3.1":"2026-03-24T15:07:52.750Z","1.3.2":"2026-03-24T19:02:28.639Z","1.3.3":"2026-04-30T12:54:23.514Z","1.3.4":"2026-05-09T12:33:55.146Z","1.4.1":"2026-06-09T23:03:21.017Z","1.5.0":"2026-06-16T09:13:56.810Z","1.6.0":"2026-06-22T20:35:37.633Z","1.7.0":"2026-07-21T20:50:05.071Z","1.8.0":"2026-08-10T23:12:13.865Z","1.9.0":"2026-08-18T14:34:03.699Z","1.9.1":"2026-08-18T16:17:10.850Z","1.10.0":"2026-08-19T21:38:00.300Z","1.10.1":"2026-08-26T02:41:25.140Z","1.10.2":"2026-08-26T04:12:46.671Z","1.10.3":"2026-08-26T05:27:34.164Z","1.10.4":"2026-09-02T14:43:47.047Z","1.11.0":"2026-09-06T00:11:56.305Z","1.12.0":"2026-09-08T11:04:20.133Z","1.13.0":"2026-09-08T13:12:26.793Z","1.13.2":"2026-09-20T09:41:03.525Z","1.14.0":"2026-09-24T22:32:09.383Z","1.15.0":"2026-09-25T09:11:18.457Z","1.15.1":"2026-09-25T15:40:15.604Z","2.0.0":"2026-09-29T15:12:25.432Z","2.0.1":"2026-09-30T08:08:14.442Z","3.0.0":"2026-10-01T21:13:28.718Z"},"bugs":{"url":"https://code.foss.global/git.zone/tsrust/issues"},"author":"Task Venture Capital GmbH","license":"MIT","homepage":"https://code.foss.global/git.zone/tsrust#README","keywords":["Rust","cargo","compilation","CLI tool","build tool","workspace","binary"],"repository":{"url":"https://code.foss.global/git.zone/tsrust.git","type":"git"},"description":"A tool for compiling Rust projects, detecting Cargo workspaces, building with cargo, and placing binaries in a conventional dist_rust directory.","maintainers":[{"name":"lossless","email":"hello@lossless.com"}],"readme":"# @git.zone/tsrust\n\nA CLI build tool for Rust projects that follows the same conventions as `@git.zone/tsbuild`. It detects your `rust/` source directory, parses `Cargo.toml` (including workspaces), runs `cargo build --release` with a managed target cache, and copies the resulting binaries into a clean `dist_rust/` directory at the project root.\n\n## Issue Reporting and Security\n\nFor reporting bugs, issues, or security vulnerabilities, please visit [community.foss.global/](https://community.foss.global/). This is the central community hub for all issue reporting. Developers who sign and comply with our contribution agreement and go through identification can also get a [code.foss.global/](https://code.foss.global/) account to submit Pull Requests directly.\n\n## Install\n\nInstall globally with pnpm:\n\n```bash\npnpm add -g @git.zone/tsrust\n```\n\nOr as a project-level dev dependency:\n\n```bash\npnpm add --save-dev @git.zone/tsrust\n```\n\n> ⚡ **No Rust required!** If `cargo` isn't found on your system, `tsrust` automatically downloads and installs a minimal Rust toolchain to `/tmp/tsrust_toolchain/`. This gives a zero-setup experience. If you already have Rust installed, `tsrust` uses your system toolchain.\n\n## The Convention\n\n`tsrust` mirrors the directory convention established by `tsbuild`:\n\n| Tool | Source Directory | Output Directory |\n|------|-----------------|-----------------|\n| `tsbuild` | `ts/` | `dist_ts/` |\n| **`tsrust`** | **`rust/`** | **`dist_rust/`** |\n\nYour Rust code lives in `rust/` (or `ts_rust/` as fallback), and compiled binaries land in `dist_rust/` — ready for packaging, deployment, or further tooling.\n\n## Usage\n\n### 🔨 Build (Default Command)\n\nSimply run `tsrust` from your project root:\n\n```bash\ntsrust\n```\n\nThis will:\n1. Detect the Rust toolchain (system `cargo`, or auto-install to `/tmp/tsrust_toolchain/`)\n2. Locate your `rust/` directory (containing `Cargo.toml`)\n3. Parse the workspace to discover all `[[bin]]` targets\n4. With [native notices](#native-notices) configured: install the build's missing rustup targets, run the notices check's own `cargo metadata --format-version 1 --locked --filter-platform <triple>` online once per notices target so Cargo downloads exactly the packages the check reads, and verify the committed notices offline\n5. Run `cargo build --release` with full streaming output, for the host's own targets only (see [Target Selection](#target-selection))\n6. Store Cargo intermediates in `.nogit/tsrust-target` of the building checkout by default; a linked Git worktree seeds its missing cache once from its canonical checkout (see [Target Cache](#target-cache))\n7. Copy each binary to `dist_rust/` with executable permissions (`chmod 755`), replacing only the artifacts this build produced; a host or `--target` build fails when Cargo produced no binary, so it never leaves an earlier build's artifact in place\n8. Write a SHA-256-bound provenance sidecar without changing the binary bytes\n9. Report file sizes and total build time\n\n**Example output:**\n\n```\nUsing cargo 1.90.0 (840b83a10 2025-07-30)\nFound Rust project at: rust\nDetected Cargo workspace\nBinary targets: rustproxy\nRunning: CARGO_TARGET_DIR=\"/path/to/project/.nogit/tsrust-target\" cargo build --release\n   Compiling rustproxy v0.1.0\n    Finished `release` profile [optimized] target(s) in 29.01s\nCopied rustproxy (13.4 MB) -> dist_rust/rustproxy\nWrote provenance: @example/rustproxy@1.0.0 abc123def456 (native)\nDone in 29.2s\n```\n\n### Automatic Rust Toolchain\n\n`tsrust` provides a zero-setup experience through automatic toolchain management:\n\n1. **System toolchain detected** → uses it as-is (no download, no overhead)\n2. **No system toolchain** → checks `/tmp/tsrust_toolchain/` for a previously installed bundled toolchain\n3. **No ready bundled toolchain** → installs a minimal host-qualified stable toolchain with `rustup-init`, or cleanly reinstalls a secure but incomplete managed toolchain\n\nThe bundled toolchain is stored in `/tmp/`, so it's cleaned up on reboot. Subsequent runs reuse the existing installation. Before executing it, tsrust requires the root to be a current-user-owned, non-symlink directory, restricts it to mode `0700`, verifies that cargo and rustup resolve to current-user-owned executables inside that root that are not group- or world-writable, and binds cargo, rustc, and target-manifest checks to the exact managed stable toolchain for the execution host. A securely resolved installation that fails readiness is removed and freshly installed through rustup under the installation lock. An atomically published current-user-owned installation lock serializes validation and bootstrap. A dead installer fails closed with the exact lock path for operator inspection instead of risking concurrent stale-lock deletion.\n\nSupported platforms for automatic install: Linux (x64, arm64) and macOS (x64, arm64).\n\n### 🐛 Debug Build\n\nBuild with the debug profile instead of release:\n\n```bash\ntsrust --debug\n```\n\nBinaries are taken from `.nogit/tsrust-target/debug/` instead of `.nogit/tsrust-target/release/`.\n\n### 🧹 Clean Before Building\n\nRun `cargo clean` before building to force a full rebuild:\n\n```bash\ntsrust --clean\n```\n\n### Target Selection\n\nBuilding other architectures is always explicit. A plain `tsrust` compiles only the configured targets that match the host's operating system and CPU architecture, in every configured C runtime: on an x86_64 Linux host with `linux_amd64`, `linux_arm64` and `linux_amd64_musl` configured, it builds `linux_amd64` and `linux_amd64_musl`. That is the build for development and tests.\n\n| Command | Builds | dist_rust/ |\n| --- | --- | --- |\n| `tsrust` | configured targets of the host's OS and architecture | replaces only the artifacts it built; other targets stay |\n| `tsrust --configured-targets` | every target configured for this build host (`targetsByHost` entry or `targets`) | emptied first, then rebuilt from the complete set |\n| `tsrust --target <t> [--target <t>]` | exactly the named targets | replaces only the artifacts it built; other targets stay |\n| `tsrust` without configured targets | the native host build, unsuffixed | emptied first, as before |\n\nWhen targets are configured but none matches the host (for example a macOS machine with only Linux targets configured), a plain build fails and names `--target` and `--configured-targets`. `--target` and `--configured-targets` cannot be combined.\n\nBuilds that replace individual artifacts write each binary and its provenance sidecar under the `.nogit/tsrust-assembly.lock` publication lock: a new copy is staged beside it and renamed over the old binary, and the old sidecar is removed before the new one is written. Every build takes the same lock. While another build or an [assembly](#multi-host-assembly) holds it, a build waits and reports the holder, bounded like the [target cache](#target-cache) wait. The lock records its holder's process identity: a machine id (a hash of `/etc/machine-id`, else `/var/lib/dbus/machine-id`, else the hostname), the boot id, the PID namespace, the process id, and the process start time from `/proc/<pid>/stat`. A lock whose holder provably ended is released and taken over, unless an interrupted assembly left its transaction: then the build fails and `tsrust assemble` recovers the transaction. A holder has ended when the machine restarted since (another boot id), when no process with its process id runs, or when that process id now belongs to a process with another start time. A process id that `/proc` does not show (`hidepid`, another user's process) but that is in use counts as running. Network interface changes do not affect the identity. Lock takeover relies on distinct machine ids: a workspace on a network filesystem shared by machines with the same machine id (for example cloned images) is not supported. While another process recovers a dead holder's lock, a build waits for it like for a running holder, and refuses a recovery claim recorded on another machine or in another PID namespace, naming the claim file. A lock recorded on another machine or in another PID namespace of the same kernel (another container) is refused, as tsrust cannot check its process; the error names the lock file to remove once no build runs there. Platforms other than Linux have no boot id or start time: there a holder counts as running while its process id is in use, so a reused process id holds the lock until the wait times out, and the timeout error names the lock file to remove. A lock written by tsrust 1.x is judged as before when its host fingerprint matches this host, by its process id alone, so its timeout error also names the lock file; otherwise the build fails and names the lock file instead of guessing. Artifacts of other targets can stem from an older commit; their sidecars say which, and [`tsrust verify`](#verify-a-release-build) rejects such a set.\n\nCross-compile for other OS/architecture combinations using the `--target` flag:\n\n```bash\n# Cross-compile for a single target\ntsrust --target linux_arm64\n\n# Cross-compile for multiple targets\ntsrust --target linux_arm64 --target linux_amd64\n\n# Full Rust triples are also accepted\ntsrust --target aarch64-unknown-linux-gnu\n```\n\nSupported friendly target names:\n\n| Friendly name | Rust target triple |\n|---|---|\n| `linux_amd64` | `x86_64-unknown-linux-gnu` |\n| `linux_arm64` | `aarch64-unknown-linux-gnu` |\n| `linux_amd64_musl` | `x86_64-unknown-linux-musl` |\n| `linux_arm64_musl` | `aarch64-unknown-linux-musl` |\n| `macos_amd64` | `x86_64-apple-darwin` |\n| `macos_arm64` | `aarch64-apple-darwin` |\n\nWith configured targets or `--target`, output binaries are named `<binname>_<os>_<arch>`:\n\n```\ndist_rust/\n├── rustproxy_linux_arm64\n├── rustproxy_linux_arm64.tsrust-build.json\n├── rustproxy_linux_amd64\n└── rustproxy_linux_amd64.tsrust-build.json\n```\n\n`tsrust` automatically installs missing rustup targets via `rustup target add` when needed. With [native notices](#native-notices) configured, the build does this for its targets before the notices check. The check reads the `rust-src` component and every configured musl target, including ones this host does not build, and installs neither: declare them in `rust-toolchain.toml` (see [Native Notices](#native-notices)), or it refuses and names the `rustup component add rust-src` or `rustup target add <triple>` command to run.\n\n### Configuration via .smartconfig.json\n\nConfigure the project's target matrix in its `.smartconfig.json`:\n\n```json\n{\n  \"@git.zone/tsrust\": {\n    \"targets\": [\"linux_arm64\", \"linux_amd64\"],\n    \"locked\": true,\n    \"targetDir\": \".nogit/tsrust-target\",\n    \"pruneAfterBuild\": false\n  }\n}\n```\n\nThe configured targets are the release matrix: `tsrust --configured-targets` builds all of them that belong to this build host, while a plain `tsrust` builds only those of the host's own architecture. CLI `--target` flags determine the selected targets when provided. The complete configuration is still validated first, so malformed legacy or host-specific entries are always rejected.\n\nFor builds split across Linux and macOS hosts, select targets by build host:\n\n```json\n{\n  \"@git.zone/tsrust\": {\n    \"targetsByHost\": {\n      \"linux\": [\"linux_amd64\", \"linux_arm64\"],\n      \"macos\": [\"macos_amd64\", \"macos_arm64\"]\n    },\n    \"locked\": true\n  }\n}\n```\n\nThe configured set of a build host uses this precedence: exact host key, OS-family key, legacy `targets`, then a native build; a plain `tsrust` then keeps the entries of the host's architecture. Exact host keys are `linux_amd64`, `linux_arm64`, `macos_amd64`, and `macos_arm64`; OS-family keys are `linux` and `macos`. The selected entries are not merged, so an exact host entry completely replaces its family entry for that host.\n\n`locked: true` runs Cargo builds with `--locked` for deterministic dependency resolution. This requires `Cargo.lock` to exist and remain consistent with the manifests; Cargo fails instead of updating an inconsistent lockfile.\n\n`targetDir` is optional. It must point to a tsrust-owned path under `.nogit/`, such as `.nogit/tsrust-target` or `.nogit/tsrust-custom-target`. You can also set `TSRUST_TARGET_DIR` for one-off runs. `pruneAfterBuild: true` or `TSRUST_PRUNE_AFTER_BUILD=true` removes the marked managed target cache after binaries have been copied to `dist_rust/`.\n\n### Target Cache\n\nEvery checkout keeps its own Cargo target cache: `.nogit/tsrust-target`, or the `targetDir` configuration or `TSRUST_TARGET_DIR`. Checkouts never share one, because Cargo identifies workspace crates by their path relative to the workspace root and judges their freshness by modification times, so a shared cache could link crates compiled from another checkout's source.\n\nA project in a linked Git worktree (`git worktree add`) with the default location starts from a warm cache anyway. When its cache does not exist yet, the first build seeds it once from the `.nogit/tsrust-target` of the same project directory in the canonical checkout, found through the Git common directory:\n\n- The canonical cache must carry the tsrust cache marker; otherwise the worktree builds from an empty cache.\n- The copy uses reflinks where the filesystem supports them (for example XFS and Btrfs) and a plain copy elsewhere, and preserves modification times.\n- Every output of a crate built from local source is removed from the copy: fingerprints, compiled files, build-script directories, incremental and example outputs, and the binaries and libraries Cargo copies into the profile directory. The crates are every package that `cargo metadata --format-version 1` (with `--locked` when `locked: true`) reports without a registry or Git source: the workspace members and all path dependencies, including those only other path dependencies declare. Their package and target names are matched in both `-` and `_` spellings. Only third-party outputs are reused; Cargo compiles the worktree's own crates from its own source.\n- The seed holds the canonical cache's lock while it reads, waiting like a build, and is built in a sibling directory that is renamed into place when complete. The leftovers of an interrupted seed are removed by the next build.\n\nAn explicit `targetDir` or `TSRUST_TARGET_DIR` is never seeded. `tsrust clean`, `tsrust prune` and `pruneAfterBuild` act on the checkout's own cache.\n\nOn Linux, builds and prune operations that use one cache take turns through a kernel-owned socket guard. A waiting build prints which process holds the cache every 30 seconds and gives up after 30 minutes; set `TSRUST_LOCK_WAIT_TIMEOUT` (seconds) to wait longer or shorter. The same limit bounds the wait for the `dist_rust/` publication lock.\n\nThe cache guard, and with it the lock a seed holds on the canonical cache, exists on Linux only. On other platforms, such as macOS, tsrust does not serialize builds of one cache (Cargo's own build-directory lock still serializes concurrent Cargo runs), and a seed copies the canonical cache without waiting for a build in the canonical checkout: do not build there while a worktree's first build seeds from it.\n\n### Verify a Release Build\n\n```bash\ntsrust verify\n```\n\n`verify` checks that `dist_rust/` holds exactly the configured release matrix of the checked-out commit: for every target in the union of `targets` and `targetsByHost` and every Cargo binary, `<binary>_<target>` must exist, be executable and carry a valid provenance sidecar that records this binary and target, the package name and version, the `HEAD` commit, and a clean worktree. It also fails when the worktree is dirty or `dist_rust/` holds anything else. Every failed check is listed and the command exits with status 1.\n\n### Migrating to tsrust 2\n\nA plain `tsrust` no longer cross-compiles the configured targets; it builds the host's own architecture. Development and test scripts keep calling plain `tsrust`. The release build must request the matrix explicitly and verify it, because `gitzone release` runs `release.preflight.buildCommand` (default `pnpm build`) in a fresh checkout and publishes exactly what that command leaves in `dist_rust/`:\n\n```json\n{\n  \"scripts\": {\n    \"build\": \"tsbuild tsfolders && tsrust\",\n    \"build:release\": \"tsbuild tsfolders && tsrust --configured-targets && tsrust verify\"\n  }\n}\n```\n\n```json\n{\n  \"@git.zone/cli\": {\n    \"release\": {\n      \"preflight\": {\n        \"buildCommand\": \"pnpm run build:release\"\n      }\n    }\n  }\n}\n```\n\nProjects that release through `tsrust matrix build` need no change: matrix workers pass explicit `--target` options. Dockerfiles that emptied `targets` to force a native build can drop that step; the plain build now writes `<binary>_<target>` names for the container's architecture. `ProvenanceStamper.stamp` is removed; `ProvenanceStamper.read` still reads trailers of tsrust 1.7 and 1.8 binaries.\n\n### Build Provenance\n\nEvery new build writes `<binary>.tsrust-build.json` beside the binary. In a Git checkout, the sidecar records the consuming package name and version, exact commit and dirty state, target, build time, and tsrust version. Non-Git builds record `gitCommit: \"unknown\"` and omit `gitDirty`. The sidecar also contains the binary's SHA-256 digest, so provenance reads fail if either file no longer belongs to the pair. The binary itself remains byte-identical to the postprocessed Cargo target-cache binary, preserving Mach-O signatures and other binary-format integrity checks. On Darwin targets, tsrust preserves an existing valid signature and applies an ad-hoc signature only when `codesign` explicitly identifies the Cargo output as unsigned. Invalid or ambiguous signature states fail the build. Signing happens before the binary is copied and before its provenance digest is written.\n\nInspect a built artifact with:\n\n```bash\ntsrust inspect dist_rust/rustproxy_linux_amd64\n```\n\n`inspect` verifies and reads the sidecar. It retains read compatibility with provenance trailers produced by tsrust 1.7 and 1.8, but new builds no longer append those trailers.\n\ntsrust snapshots the Git commit and complete worktree status before each Cargo build and verifies that neither changed before copying artifacts. Dirty builds remain possible for development and are marked as dirty; strict multi-host assembly rejects them.\n\n### Multi-Host Assembly\n\nEach host builds its complete set with `tsrust --configured-targets`, which empties and refills its own `dist_rust/`. Copy those host outputs into separate artifact directories, then assemble the complete matrix from the same clean Git checkout and package version:\n\n```bash\ntsrust assemble .nogit/artifacts/linux .nogit/artifacts/macos\n```\n\nThe union of `targets` and `targetsByHost` defines the required target matrix. Repeated `--target` options can define an explicit matrix instead. Assembly always publishes to the tsrust-owned `dist_rust/` directory.\n\nAssembly requires every Cargo binary for every expected target. It rejects missing, duplicate, unexpected, non-executable, symlinked, hash-mismatched, dirty, wrong-commit, wrong-package, and wrong-tsrust-version inputs. Validation and copying happen in a same-filesystem transaction under `.nogit/tsrust-assembly/`, guarded by the atomically published `.nogit/tsrust-assembly.lock`. The Git commit, clean worktree, and package identity are checked again immediately before publication. The previous output is retained until the complete staged matrix is ready, and successful publication removes files left by older matrices.\n\nThe transaction records its owner's process identity (machine id, boot id, PID namespace, process id and start time, as for the [publication lock](#target-selection)), owner token, publication phase, and exact digest manifest for staged binaries and sidecars. A separate atomic recovery claim serializes dead-owner recovery. When the owner lock and state are readable and consistent, a later invocation on the owning machine rejects a live process, rolls back an interrupted pre-commit publication after that process exits, and completes publication or cleanup after durable commit intent only after revalidating the manifest. Legacy committed v1 transactions from tsrust 1.9 are validated against the current exact assembly request, upgraded with a manifest, and then completed; incompatible legacy staging fails closed. A confirmed missing state file is safe to clean because the owner-lock protocol forbids output mutation before initial state persistence; malformed, non-regular, unreadable, owner-inconsistent, or manifest-inconsistent state fails closed. A restart of the owning machine ends its owner, so the next invocation recovers the transaction. A transaction owned by another machine or PID namespace is never taken over automatically because portable filesystem operations cannot fence a paused remote writer; the error names the record to remove once no assembly runs there. If committed cleanup cannot finish immediately, the programmatic result reports `cleanupPending: true` and the CLI prints a warning; the owning process can retry it immediately.\n\n### Native Build Matrix\n\n`tsrust matrix` automates host-partitioned builds and strict assembly. Committed configuration identifies expected worker architectures and names the environment variables that contain operator-local SSH details:\n\n```json\n{\n  \"@git.zone/tsrust\": {\n    \"targetsByHost\": {\n      \"linux\": [\"linux_amd64\", \"linux_arm64\"],\n      \"macos\": [\"macos_amd64\", \"macos_arm64\"]\n    },\n    \"locked\": true,\n    \"matrix\": {\n      \"builders\": {\n        \"linux_amd64\": {\n          \"transport\": \"local\"\n        },\n        \"macos_arm64\": {\n          \"transport\": \"ssh\",\n          \"destinationEnv\": \"TSRUST_MACOS_SSH\",\n          \"temporaryRootEnv\": \"TSRUST_MACOS_TEMP_ROOT\"\n        }\n      },\n      \"smokeTestArgs\": [\"--version\"],\n      \"verificationCommand\": [\"cargo\", \"test\", \"--manifest-path\", \"rust/Cargo.toml\", \"--workspace\", \"--locked\"],\n      \"forwardEnvironment\": [\"NPM_TOKEN\"]\n    }\n  }\n}\n```\n\n`matrix.verificationCommand` is optional. It is an executable followed by literal\narguments, with no shell expansion. It runs once per configured worker in that\nworker's exact-commit checkout, after frozen dependency installation and before\nthe artifact build. Use `['pnpm', 'run', 'verify-native']` for a reviewed project\nscript that combines Rust and public API qualification. A test failure, timeout,\ninterruption or tracked-source mutation prevents artifact assembly and preserves\nthe prior output. Verification inherits the restricted worker environment, pnpm\nage policy, shared one-hour worker deadline and owned process-group cleanup;\nSSH workers also retain the disconnect watchdog. Arguments are limited to 256\nentries and 64 KiB total, with no NUL or line breaks. Keep credentials out of\ncommitted commands and test output.\n\nSuccessful `NativeMatrixBuilder.build()` results include `verifiedWorkers`, the\nhost keys on which verification completed; it is empty when no command was\nconfigured. `matrix check` checks capabilities only and does not run verification.\n\nSet the referenced values outside the repository. The SSH destination may be an OpenSSH alias or `user@host`; the temporary root must be a dedicated absolute path owned by the remote account:\n\n```bash\nexport TSRUST_MACOS_SSH=\"release-user@mac-builder.example\"\nexport TSRUST_MACOS_TEMP_ROOT=\"/Users/release-user/.git.zone/tsrust/my-project\"\nexport TSRUST_MATRIX_ALLOWED_ENVIRONMENT=\"NPM_TOKEN\"\n```\n\nBuilder keys are limited to `linux_amd64`, `linux_arm64`, `macos_amd64`, and `macos_arm64`. At most one worker may use `transport: \"local\"`. Worker target partitions must be non-empty, disjoint, complete, and from the worker's OS family. Matrix execution probes support the six predefined targets `linux_amd64`, `linux_arm64`, `linux_amd64_musl`, `linux_arm64_musl`, `macos_amd64`, and `macos_arm64`. Native GNU targets require `cc`; non-native GNU probes use their predefined `*-linux-gnu-gcc` command. Musl probes always use their predefined `*-linux-musl-gcc` command. Non-native architectures also require executable emulation.\n\nEnvironment-variable names must match `[A-Za-z_][A-Za-z0-9_]*`. Committed `forwardEnvironment` entries are requests, not grants: every requested name must also appear in the operator-owned comma-separated `TSRUST_MATRIX_ALLOWED_ENVIRONMENT` value or matrix construction fails. Built-in worker and transport names cannot be requested, including `PATH`, `HOME`, `CI`, `RUSTUP_HOME`, `CARGO_HOME`, SSH agent variables, and the grant variable itself. Worker lifecycle commands receive only a small execution baseline, synthetic per-run `HOME` and `CARGO_HOME` directories, and operator-granted names; unrelated coordinator credentials are omitted. For SSH workers, granted values are made available to the SSH client and admitted into project commands only when the remote login environment supplies them, such as through deliberate OpenSSH `SendEnv`/`AcceptEnv` configuration. Values are never placed in the remote command line. SSH destinations are ASCII single aliases or `user@host` values without embedded options, ports, whitespace, or IPv6 syntax. Put ports, identity files, proxy jumps, host-key policy, credentials, and agent selection in OpenSSH configuration or an SSH agent. Temporary roots use an ASCII path whitelist and must be normalized, space-free, multi-component absolute paths whose physical resolution contains no symlink traversal. When present, `smokeTestArgs` must be a non-empty array of single-line, NUL-free strings and must not contain secrets.\n\nMatrix builds capture the coordinator repository's effective `minimumReleaseAge`, `minimumReleaseAgeStrict`, and `minimumReleaseAgeExclude` values using individual `pnpm config get <key> --json` calls. These three nonsecret policy values travel to every local and SSH worker through tSRust-owned `PNPM_CONFIG_MINIMUM_RELEASE_AGE`, `PNPM_CONFIG_MINIMUM_RELEASE_AGE_STRICT`, and `PNPM_CONFIG_MINIMUM_RELEASE_AGE_EXCLUDE` environment variables. These names cannot be requested through `forwardEnvironment`. Global scope exclusions and repository overrides therefore survive the synthetic worker home. SSH transport shell-quotes the policy values; unlike granted credentials, these nonsecret values are included in the remote command. Registry and authentication configuration is never enumerated or copied, and the coordinator process environment remains unchanged. Values must be valid JSON with a nonnegative integer age, boolean strictness, and a string-array exclusion list; unset values remain unset. The policy is limited to 32 KiB, at most 512 exclusions, and 1,024 characters per exclusion. Each worker reads all three values back before installation and fails if they differ from the captured policy. There is no age-gate bypass or fallback policy.\n\n`matrix check` validates the coordinator's package-age policy and verifies the exact project-local tsrust package version without executing its binary, the native linker, system Cargo plus rustup with an active default toolchain and readable target manifest or the complete securely resolved bundled pair with cargo, rustc, and target-manifest readiness bound to that worker's exact managed stable toolchain, worker identity, emulation or cross-execution, and remote-root ownership and permissions. It is a capability-only command: it does not require a clean worktree or compare the working configuration with the committed plan. If usable system Cargo is unavailable and the bundled executables are either absent or securely resolved but not ready, it verifies only that `curl` is available for tsrust bootstrap or clean reinstall; it does not prove network access, install targets, or compile the project. The check creates the dedicated remote root with restrictive permissions when it is absent. Capability and cleanup commands have a five-minute limit. Dependency installation, configured verification, compilation, per-binary smoke execution, bundle upload, and bounded artifact retrieval share each worker's one-hour build limit.\n\nBefore a configured verification command runs, the worker selects usable system Cargo or prepares the bundled toolchain through the exact installed tsrust package. Bundled verification receives its host-specific Rustup selection and executable path while retaining the worker's private `HOME` and `CARGO_HOME`. This supports direct `cargo`, `rustc` and `rustup` calls inside verification scripts. Preparation failure prevents verification and artifact assembly; bootstrap and verification remain within the same worker deadline and process cleanup boundary.\n\nRun the capability-only check before release metadata is created:\n\n```bash\ntsrust matrix check\n```\n\nBuild and atomically publish the complete matrix from a clean exact Git commit:\n\n```bash\ntsrust matrix build\n```\n\nEvery worker receives the same exact commit through a streamed Git bundle, installs with `pnpm install --frozen-lockfile`, revalidates the installed tsrust package version, invokes the project-local `tsrust` with explicit targets, and optionally executes every binary with `smokeTestArgs`. Local and remote project commands run with the restricted worker environment. Local and remote workers build in isolated clones, so an incomplete matrix never replaces an existing `dist_rust`. SSH workers use `/bin/bash` on Linux or `/bin/zsh` on macOS in login mode for builds, normal OpenSSH host verification, architecture and random-owner-marker validation on every lifecycle and transfer connection, locally and remotely byte-bounded non-login SSH streams for artifact retrieval, a heartbeat-bound process-group watchdog, and a unique mode-0700 child below the configured root. Remote owner-validated cleanup is a pre-publication gate: failure preserves the prior `dist_rust` and reports retained diagnostics. After successful assembly, failure to remove local staging emits a warning but does not reverse the committed publication.\n\n`matrix build` additionally requires the normalized resolved matrix policy to match committed `.smartconfig.json` at the captured commit, a clean Git worktree without `skip-worktree` or `assume-unchanged` flags, package name and version, a frozen pnpm lockfile, and at least one Cargo binary. Matrix transport rejects Git submodules, tracked symbolic links, checkout filters, and external-content pointer records because those inputs are not self-contained regular files in a plain exact-commit bundle. Source compatibility, index flags, and the clean Git snapshot are revalidated around bundle creation and after project-controlled build and smoke commands. Binaries are limited to 2 GiB each, provenance sidecars to 1 MiB each, and an assembly to 8 GiB total. Worker keys are expected host identities, not network addresses. Keep only the SSH destination and temporary root in the referenced variables; keys and credentials remain in OpenSSH configuration or an agent. Failed workspaces are intentionally retained and are not pruned automatically; each local and remote root admits at most three retained failed runs and then requires the operator to inspect and remove the exact reported paths before retrying.\n\nMatrix workers are trusted execution principals, not sandboxes. A release therefore trusts the reviewed exact source commit, its lockfile-selected dependencies and lifecycle/build scripts, the selected local and SSH hosts, their toolchains and login configuration, and the registries they contact. Environment filtering, owner markers, source checks, bounded transfers, provenance digests, and transactional publication prevent accidental credential inheritance, stale or incomplete inputs, endpoint mix-ups, and partial publication; they do not contain deliberately malicious code already running as the same operating-system user. Use a separately isolated worker account or container when that trust assumption does not hold.\n\n### Static Linking\n\nFor static Linux binaries, build the musl targets. They are statically linked by default, run on glibc distros (Debian/Ubuntu) and musl distros (Alpine) alike, and contain musl libc, which is MIT-licensed:\n\n```json\n{\n  \"@git.zone/tsrust\": {\n    \"targets\": [\"linux_amd64_musl\", \"linux_arm64_musl\"],\n    \"static\": true\n  }\n}\n```\n\n`static: true` (or `--static` per invocation) makes `tsrust` verify after the build that every Linux binary in `dist_rust/` is statically linked (no `PT_INTERP` ELF program header — the check is architecture-independent, so cross-compiled binaries are verified too) and fail the build otherwise.\n\nBehavior per target:\n\n- `*-linux-musl`: statically linked by default; no flags are injected.\n- `*-linux-gnu`: `tsrust` injects `RUSTFLAGS=\"-C target-feature=+crt-static\"` and links glibc statically.\n- `*-apple-darwin`: full static linking is not applicable on macOS; the target builds with default linkage.\n\n**Prefer musl over static glibc.** glibc is licensed under the LGPL-2.1-or-later. A binary that links it statically must be distributed with the means to relink it that LGPL-2.1 section 6 requires: the application's object files or source, so users can relink it against a modified glibc, and the glibc source or a written offer for it. `tsrust` does not produce that material, and [native notices](#native-notices) refuse static glibc targets. Use the musl targets for static binaries, or leave GNU targets dynamically linked (without `static`): a dynamic binary loads the host's glibc at run time and redistributes none of it.\n\nWhy `tsrust` injects the crt-static flag for GNU targets instead of the project setting `rustflags` in `rust/.cargo/config.toml`:\n\n- `tsrust` always builds with an explicit `--target`, so the flag never applies to host artifacts. A repo-wide `rustflags` entry also applies to proc-macros and build scripts whenever cargo runs *without* `--target` (plain `cargo test`, `cargo check`, rust-analyzer) — and rustc cannot build proc-macros with `+crt-static` on linux-gnu, breaking those commands.\n- Keep `rust/.cargo/config.toml` free of `rustflags` when using `static` — the injected `RUSTFLAGS` environment variable *replaces* any config-file `rustflags` (cargo does not merge them). `linker` entries (e.g. for aarch64 cross-compilation) are unaffected and should stay.\n\n### Deterministic Path Remapping\n\nRelease binaries can embed absolute source paths in panic locations. Enable local path remapping to avoid publishing machine-specific paths:\n\n```json\n{\n  \"@git.zone/tsrust\": {\n    \"targets\": [\"linux_amd64_musl\", \"linux_arm64_musl\"],\n    \"static\": true,\n    \"remapLocalPaths\": true\n  }\n}\n```\n\n`remapLocalPaths` adds Rust `--remap-path-prefix` flags for the project root, Rust source directory, Cargo home, and rustup home. Additional flags can be supplied explicitly through `rustflags`; these flags are combined with automatic flags such as `-C target-feature=+crt-static` for Linux GNU static builds:\n\n```json\n{\n  \"@git.zone/tsrust\": {\n    \"rustflags\": [\"--cfg=my_feature\"]\n  }\n}\n```\n\n### Native Notices\n\nA package that ships native binaries must carry the license notices of everything those binaries contain: the Rust crates from `Cargo.lock`, C libraries that crates compile in, the Rust standard library, and the C runtime. `tsrust notices` generates them into a committed directory next to your sources, and every build verifies it:\n\n```json\n{\n  \"@git.zone/tsrust\": {\n    \"targets\": [\"linux_amd64_musl\", \"linux_arm64_musl\"],\n    \"static\": true,\n    \"locked\": true,\n    \"notices\": {}\n  }\n}\n```\n\n```bash\ntsrust notices          # write native-notices/\ntsrust notices --check  # verify without writing\n```\n\nShip the directory with the package by listing it in `package.json`:\n\n```json\n{\n  \"files\": [\"dist_rust/**/*\", \"native-notices/**/*\"]\n}\n```\n\nWhat the bundle holds (`manifest.json` records each package's license expression, the texts that cover it, each target's packages and runtime, and the SHA-256 digest of every file):\n\n| Path | Contents |\n| --- | --- |\n| `crates/<name>-<version>/` | Every license, copyright and notice file each third-party package publishes, copied verbatim. |\n| `crates/<name>-<version>/extra/` | Reviewed extra texts the project declares for a package in `notices.packages.<key>.extraTexts`. |\n| `native/<crate>-<version>/<library>-<version>/` | License files of C/C++ libraries a crate compiles in, as declared in `notices.packages`. |\n| `rust/` | The toolchain's standard-library copyright inventory and license texts, compiler-builtins' license, and (`rust/crates/`) the license files of standard-library dependencies the inventory omits. |\n| `runtime/` | musl's copyright (static musl targets), the glibc LGPL-2.1 text (dynamic GNU targets, glibc itself is not redistributed), and GCC's GPL-3.0 with the Runtime Library Exception (Linux targets). macOS targets link Apple's system libraries, which are not redistributed. |\n| `readme.md` | A summary of the targets, their linkage, and the obligations above. |\n\nPackages are resolved per configured target with `cargo metadata --locked --filter-platform <triple>`: the normal and build dependencies of the workspace's binary packages, transitively, including procedural macros. Development dependencies and the workspace's own crates are excluded. The Rust runtime comes from the toolchain `rust-toolchain.toml` selects.\n\nGeneration fails instead of guessing when:\n\n- a package declares no license, or an expression that is not valid SPDX (Cargo's legacy `MIT/Apache-2.0` form is accepted);\n- no license file of a package covers its expression: every `AND` term of at least one alternative needs a recognised license text;\n- a package has a `links` key and does not declare the native libraries it compiles;\n- a Linux GNU target is linked statically (see [Static Linking](#static-linking));\n- an override names no compiled package, or is no longer needed;\n- an extra text is missing or its SHA-256 digest differs from its pin;\n- the musl version in the toolchain has no reviewed copyright text in `tsrust`;\n- `package.json` `files` does not ship the notices directory.\n\nOverrides are keyed by the exact `name@version`, so a dependency upgrade retires them:\n\n```json\n{\n  \"@git.zone/tsrust\": {\n    \"notices\": {\n      \"directory\": \"native-notices\",\n      \"packages\": {\n        \"zstd-sys@2.0.16+zstd.1.5.7\": {\n          \"native\": [\n            {\n              \"name\": \"zstd\",\n              \"version\": \"1.5.7\",\n              \"license\": \"BSD-3-Clause OR GPL-2.0-only\",\n              \"files\": [\"zstd/LICENSE\", \"zstd/COPYING\"]\n            }\n          ]\n        },\n        \"crc32c@0.6.8\": {\n          \"files\": [{ \"from\": \"project\", \"path\": \"legal/crc32c-license-mit\", \"licenses\": [\"MIT\"] }]\n        },\n        \"ring@0.17.14\": {\n          \"extraTexts\": [\n            {\n              \"path\": \"legal/ring-0.17.14-once-cell-license-mit.txt\",\n              \"sha256\": \"6ee2ed6c77710de911761acd5fc1ad1da00f476beb1a7ef27e78c2d1858deafc\",\n              \"kind\": \"component-license\",\n              \"component\": \"once_cell\"\n            },\n            {\n              \"path\": \"legal/ring-0.17.14-source-attributions.txt\",\n              \"sha256\": \"675df5a11ef946e519a267eba5f54ce8125eee0d0d443e614302706db4819459\",\n              \"kind\": \"source-attribution\"\n            }\n          ]\n        }\n      },\n      \"runtime\": {\n        \"linux_amd64_musl\": [\n          { \"name\": \"musl-cross\", \"version\": \"20260823\", \"license\": \"MIT\", \"files\": [\"legal/musl-cross-copyright\"] }\n        ]\n      }\n    }\n  }\n}\n```\n\n- `packages.<key>.native`: C/C++ libraries the crate compiles, with license files relative to the crate root. `[]` declares that a `links` crate bundles no third-party library.\n- `packages.<key>.files`: reviewed texts for a package whose own files do not cover its license, either kept in the project (`\"from\": \"project\"`) or a crate file whose wording `tsrust` does not recognise (`\"from\": \"crate\"`), with the SPDX identifiers each text satisfies.\n- `packages.<key>.extraTexts`: reviewed project texts to ship with a package in addition to the texts that cover its license, for example the license of a component the crate vendors or a supplement reproducing the copyright comments of its sources. Each entry names the project-relative `path`, the file's lowercase hex `sha256` digest, its `kind` (`\"component-license\"` or `\"source-attribution\"`) and, optionally, the vendored `component` it applies to. The texts are copied to `crates/<name>-<version>/extra/` (`rust/crates/…/extra/` for standard-library dependencies) and listed with their kind under the package's `extraTexts` in `manifest.json`. They never count towards covering the package's license, so a package whose own files do not cover it still needs `files`, and `files` that are no longer needed still fail. Generation and every check refuse a missing text or one whose digest differs from its pin; after reviewing a changed text, update the pin.\n- `packages.<key>.license`: only for a package that declares no license or one that is not valid SPDX.\n- `runtime.<target>`: runtime material a custom linker adds, for example the startup files of a musl cross toolchain.\n\nThe build (`tsrust`) checks the notices before compiling when `notices` is configured, and refuses targets the notices do not cover. It first installs the rustup targets it builds and then, in the Rust directory and with the same toolchain, runs the check's own metadata command online, `cargo metadata --format-version 1 --locked --filter-platform <triple>` without `--offline`, once for every notices target, one after another, so a fresh CI container or developer machine with an empty Cargo cache builds without a manual step; the first failing run fails the build with its command, exit code, Rust directory and Cargo's error. Each run downloads exactly what the offline check then reads for that target: the packages the lockfile activates with default features for that target and for the host, where build scripts and procedural macros run. It does not use `cargo fetch`, which downloads the optional dependencies of every feature of every workspace member and, for several targets at once, the dependencies a package has on one target when another target uses it, none of which the check reads. Packages only other platforms use, such as `cfg(windows)` dependencies of a Linux build, and optional dependencies of features that nothing in the default-feature build enables are not downloaded, so a Cargo cache that `tsrust notices` or an earlier build filled on the same host is enough during a registry outage or offline. Git dependencies are cloned whole whatever the platform, because Cargo needs them to resolve the lockfile. If `cargo metadata --offline` still fails after the same command succeeded online, the error says so instead of the standalone advice. `tsrust matrix check` and `tsrust matrix build` check them once on the coordinator, before any worker starts; `tsrust matrix build` first runs the same online metadata on the coordinator, once per notices target, and stops before any worker when it fails. `tsrust notices --check` and `tsrust matrix check` still download nothing. Workers then build with `--no-notices-check`, which skips only that comparison. After a dependency, toolchain, or target change, run `tsrust notices`, review the diff, and commit it.\n\nApart from that build preparation, only `tsrust notices` uses the network and installs anything: it lets Cargo download missing packages, fetches the standard-library dependencies the toolchain inventory omits (verified against the checksums in the toolchain's `library/Cargo.lock`), and installs the `rust-src` component and missing musl targets. `tsrust notices --check`, `tsrust matrix check` and the check itself in `tsrust` and `tsrust matrix build` work offline and install nothing: they run `cargo metadata --offline` against the local Cargo cache, verify the committed `rust/crates/` notices against the toolchain's checksums and the digests in `manifest.json` and the project's extra texts against their pins, and refuse with the command to run when something is missing (`cargo fetch --locked` for an empty Cargo cache, `rustup component add rust-src`, `rustup target add <triple>`).\n\nThe notices read the standard-library sources of the `rust-src` component and the C runtime of every configured musl target. No check installs them, and the build installs only the targets it builds, never `rust-src`. Declare them in the project's `rust-toolchain.toml`, so rustup installs them with the toolchain on every machine:\n\n```toml\n[toolchain]\nchannel = \"1.95.0\"\ncomponents = [\"rust-src\"]\ntargets = [\"x86_64-unknown-linux-musl\", \"aarch64-unknown-linux-musl\"]\n```\n\nWithout the declaration, run `rustup component add rust-src` and `rustup target add <triple>` once per machine, or `tsrust notices`, which installs them.\n\nWith `notices` configured, every build refuses static glibc, including builds with `--no-notices-check`: `static`/`--static` on a GNU target, and `+crt-static` in the tsrust `rustflags`, `RUSTFLAGS`, `CARGO_ENCODED_RUSTFLAGS`, `CARGO_BUILD_RUSTFLAGS` or `CARGO_TARGET_<TRIPLE>_RUSTFLAGS`. Static linking configured elsewhere, such as rustflags in `.cargo/config.toml`, is caught after compiling: a GNU binary without an ELF interpreter is removed from `dist_rust/` and the build fails.\n\n### 🗑️ Clean Only\n\nRemove all build artifacts without rebuilding:\n\n```bash\ntsrust clean\n```\n\nThis runs `cargo clean` in the Rust directory and deletes the `dist_rust/` output directory.\n\n### 🧹 Prune Rust Target Caches\n\nReport Rust target caches without deleting anything:\n\n```bash\ntsrust prune\n```\n\nApply cleanup to marked tsrust-managed target caches:\n\n```bash\ntsrust prune --apply --days 14 --max-size 5GiB\n```\n\nPrune plans retain their thresholds and cache identity. Apply checks the marker, identity,\ncomplete scan, and current age/size again before removal. Symlinks, filesystem boundaries,\nunreadable entries, and incomplete scans are report-only. Active Rust tools or processes\nusing the cache block removal. Linux builds and prune operations share a kernel-owned\nsocket guard with a bounded, reported wait (see [Target Cache](#target-cache)); process inspection requires a readable `/proc`. Apply (including\n`pruneAfterBuild`) fails closed on other platforms. Dry-run reporting remains available.\nDirect Cargo commands do not participate in the tsrust guard: stop other Rust tools before\napplying a prune. Unmarked and conventional target directories remain report-only.\n\n\n| Option | Description |\n| --- | --- |\n| `--apply` | Remove marked managed target caches that match the filters |\n| `--days <n>` | Prune marked caches whose newest file is at least `n` days old; default `14` |\n| `--max-size <size>` | Prune marked caches at or above a size such as `5GiB` |\n| `--workspace <path>` | Inspect another workspace path |\n\nConventional `rust/target` and `ts_rust/target` directories are report-only, even if they carry a marker. Only managed `.nogit/tsrust*` target directories are eligible for `--apply`; arbitrary app data is never marked or removed.\n\n## Project Structure\n\n`tsrust` expects your project to follow this layout:\n\n```\nmy-project/\n├── rust/                   # 🦀 Your Rust source code\n│   ├── Cargo.toml          #    Root manifest (workspace or single crate)\n│   ├── src/\n│   │   └── main.rs         #    (for single-crate projects)\n│   └── crates/             #    (for workspace projects)\n│       ├── my-binary/\n│       │   ├── Cargo.toml  #    Contains [[bin]] targets\n│       │   └── src/\n│       └── my-lib/\n│           ├── Cargo.toml\n│           └── src/\n├── native-notices/         # ⚖️ Third-party notices (tsrust notices, committed)\n├── dist_rust/              # 📦 Output: compiled binaries go here\n│   ├── my-binary\n│   └── my-binary.tsrust-build.json\n├── .nogit/\n│   └── tsrust-target/      # 🧹 Managed Cargo target cache\n├── ts/                     #    (your TypeScript code, built by tsbuild)\n├── dist_ts/                #    (TypeScript output)\n└── package.json\n```\n\n### Workspace Support\n\n`tsrust` fully supports Cargo workspaces. It reads the `[workspace]` section from your root `Cargo.toml`, iterates through all `members`, and discovers binary targets from each member crate's `Cargo.toml`.\n\nBinary target discovery follows Cargo's own rules:\n- **Explicit `[[bin]]` entries** → uses the `name` field from each entry\n- **Implicit binary** → if no `[[bin]]` is declared but `src/main.rs` exists, uses the `[package] name`\n- **Library-only crates** → skipped (no binary output expected)\n\n### Fallback Directory\n\nIf no `rust/` directory is found, `tsrust` checks for `ts_rust/` as a fallback. This supports projects that use the `ts_` prefix convention for all source directories.\n\n## Programmatic API\n\n`tsrust` exports its internals for use in other Node.js/TypeScript tools:\n\n```typescript\nimport {\n  ArtifactAssembler,\n  CargoConfig,\n  CargoRunner,\n  FsHelpers,\n  ProvenanceStore,\n  NativeMatrixBuilder,\n  TsRustCli,\n  configuredAssemblyTargets,\n  normalizeTargets,\n  resolveBuildTargets,\n  resolveTargetCacheLocation,\n  selectBuildTargets,\n} from '@git.zone/tsrust';\n\n// Parse a Cargo workspace\nconst config = new CargoConfig('/path/to/rust');\nconst info = await config.parse();\nconsole.log(info.isWorkspace);   // true\nconsole.log(info.binTargets);    // ['rustproxy']\n\n// Run cargo build\nconst runner = new CargoRunner('/path/to/rust');\nconst { targetDir } = resolveTargetCacheLocation('/path/to/project');\nconst result = await runner.build({ debug: false, clean: false, targetDir });\nconsole.log(result.success);     // true\nconsole.log(result.exitCode);    // 0\n\n// File helpers\nawait FsHelpers.ensureEmptyDir('/path/to/dist_rust');\nawait FsHelpers.copyFile(src, dest);\nawait FsHelpers.makeExecutable(dest);\nconst size = await FsHelpers.getFileSize(dest);\nconsole.log(FsHelpers.formatFileSize(size));  // \"13.4 MB\"\n```\n\nImportant exported build and artifact APIs:\n\n| API | Purpose |\n| --- | --- |\n| `selectBuildTargets()` | Select the targets and `dist_rust/` mode of a standard build: host, configured, explicit, or native. |\n| `resolveBuildTargets()` | Apply CLI, exact-host, OS-family, legacy, and native target precedence. |\n| `resolveHostTargets()` | Keep the configured targets of the host's operating system and architecture. |\n| `resolveTargetCacheLocation()` | Resolve a checkout's own Cargo target cache and, in a linked worktree, the canonical cache that seeds it. |\n| `seedTargetCache()` | Create a missing worktree cache once from the canonical cache, keeping only third-party outputs. |\n| `DistRustPublisher` | Replace or clear `dist_rust/` artifacts under the assembly publication lock. |\n| `DistRustVerifier` | Check that `dist_rust/` holds exactly the configured matrix of one clean commit. |\n| `getCurrentProcessIdentity()` / `getProcessIdentityStatus()` | Record the calling process's identity and judge whether a recorded lock owner is alive, dead, or cannot be checked. |\n| `configuredAssemblyTargets()` | Normalize and deduplicate the union required for multi-host assembly. |\n| `normalizeTargets()` | Resolve friendly aliases and reject invalid or colliding target names. |\n| `ProvenanceStore` | Write, hash-verify, and read byte-preserving provenance sidecars. |\n| `ArtifactAssembler` | Validate and transactionally publish a complete exact-commit artifact matrix to `dist_rust/`. |\n| `NativeMatrixBuilder` | Check and build an isolated local/SSH native matrix, then delegate publication to `ArtifactAssembler`. |\n| `resolveMatrixPlan()` / `matrixHostKeys` | Validate matrix configuration and inspect its complete disjoint worker schedule. |\n| `MatrixCommandRunner` | Execute bounded matrix subprocesses with process-group, signal, timeout, input, and heartbeat ownership. |\n| Matrix configuration and result types | Type `NativeMatrixBuilder`, worker transports, resolved plans, and check/build results. |\n| `captureGitSnapshot()` / `assertGitSnapshotUnchanged()` | Capture and compare Git commit and worktree state around a build. |\n| `ProvenanceStamper` | Read the embedded trailers of tsrust 1.7/1.8 binaries; builds use `ProvenanceStore`. |\n| `NativeNoticesGenerator` / `createProjectNoticesGenerator()` | Generate, write, or check the native notices bundle of a project. |\n| `parseSpdxExpression()` / `classifyLicenseText()` | Expand SPDX expressions into alternatives and recognise license texts. |\n\n## License and Legal Information\n\nThis repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](./license.md) file.\n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.\n\nUse of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.\n\n### Company Information\n\nTask Venture Capital GmbH\nRegistered at District Court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n","readmeFilename":""}