@@ -127,6 +127,29 @@ that embeds JARs of the scala-cli modules, and downloads their dependencies
127
127
from Maven Central upon first launch (using the coursier cache, just like
128
128
a coursier bootstrap).
129
129
130
+ ### Helper projects
131
+
132
+ A number of features of Scala CLI are managed from external projects, living under
133
+ the [ ` scala-cli ` organization] ( https://github.com/scala-cli ) on GitHub. These
134
+ projects can be used by Scala CLI as libraries pulled before it's compiled, but also
135
+ as binaries. In the latter case, Scala CLI downloads on-the-fly binaries from these
136
+ repositories' GitHub release assets, and runs them as external processes.
137
+
138
+ For example, here are a few external projects used by Scala CLI:
139
+ - [ scala-js-cli-native-image] ( https://github.com/scala-cli/scala-js-cli-native-image ) : provides a binary running the Scala.js linker
140
+ - [ scala-cli-signing] ( https://github.com/scala-cli/scala-cli-signing ) : provides both libraries and binaries to handle PGP concerns in Scala CLI
141
+ - [ libsodiumjni] ( https://github.com/scala-cli/libsodiumjni ) : provides minimal JNI bindings for
142
+ [ libsodium] ( https://github.com/jedisct1/libsodium ) , that is used by Scala CLI to encrypt secrets
143
+ uploaded as GitHub repository secrets in the ` publish setup ` sub-command
144
+
145
+ For the full list of those projects and their description, see the
146
+ [ scala-cli repository list] ( https://github.com/orgs/scala-cli/repositories ) and the READMEs
147
+ of each of these projects.
148
+
149
+ The use of external binaries allows to make the Scala CLI binary slimmer and faster
150
+ to generate, but also allow to lower memory requirements to generate it (allowing to
151
+ generate these binaries on the GitHub-provided GitHub actions hosts).
152
+
130
153
### Website
131
154
132
155
The Scala CLI website is built with [ Docusaurus] ( https://v1.docusaurus.io/en/ ) and uses [ Infima] ( https://infima.dev/docs/layout/spacing ) for styling.
0 commit comments