Skip to content

Commit 22f5c86

Browse files
Add section about external projects in README (#1075)
1 parent 86bafce commit 22f5c86

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,29 @@ that embeds JARs of the scala-cli modules, and downloads their dependencies
127127
from Maven Central upon first launch (using the coursier cache, just like
128128
a coursier bootstrap).
129129

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+
130153
### Website
131154

132155
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

Comments
 (0)