1- <table ><tr >
2- <td colspan =" 1 " > <h3 align =" center " > <picture >
1+ <table >
2+ <tr >
3+ <td align =" left " valign =" middle " >
4+ <h3 align =" left " > SideCar</h3 >
5+ </td >
6+ <td align =" left " valign =" middle " >
7+ <h3 align =" left " >
8+ ⚙️
9+ </h3 >
10+ </td >
11+ <td align =" left " valign =" middle " >
12+ <h3 align =" left " >+</h3 >
13+ </td >
14+ <td align =" left " valign =" middle " >
15+ <h3 align =" left " >
16+ <a href =" https://Editor.Land " target =" _blank " >
17+ <picture >
318<source media =" (prefers-color-scheme: dark) " srcset =" https://PlayForm.Cloud/Dark/Image/GitHub/Land.svg " >
419<source media =" (prefers-color-scheme: light) " srcset =" https://PlayForm.Cloud/Image/GitHub/Land.svg " >
520<img width =" 28 " alt =" Land Logo " src =" https://PlayForm.Cloud/Image/GitHub/Land.svg " >
6- </picture > </h3 > </td > <td colspan =" 3 " valign =" top " > <h3 align =" center " > Sidecar Runtimes ⚙️
7- </h3 > </td >
8- </tr ></table >
21+ </picture >
22+ </a >
23+ </h3 >
24+ </td >
25+ <td align =" left " valign =" middle " >
26+ <h3 align =" left " >
27+ <a href =" https://Editor.Land " target =" _blank " >
28+ Land
29+ </a >
30+ </h3 >
31+ </td >
32+ <td align =" left " valign =" middle " >
33+ <h3 align =" left " >🏞️</h3 >
34+ </td >
35+ </tr >
36+ </table >
937
1038---
1139
12- # ** Sidecar Runtimes** ⚙️ Pre-Compiled Native Dependencies
40+ # ** SideCar** ⚙️ Pre-Compiled Native Dependencies for Land 🏞️
41+
42+ Welcome to ** SideCar** , the central repository for all pre-compiled,
43+ platform-specific sidecar binaries required by the ** Land Code Editor**
44+ ecosystem. A "sidecar" is an external, standalone executable that runs alongside
45+ the main ` Mountain ` application to provide specialized functionality, such as
46+ the ` Cocoon ` extension host which runs on Node.js.
1347
14- This directory serves as the central repository for all pre-compiled,
15- platform-specific sidecar binaries required by the Land Code Editor ecosystem. A
16- "sidecar" is an external, standalone executable that runs alongside the main
17- ` Mountain ` application to provide specialized functionality, such as the
18- ` Cocoon ` extension host which runs on Node.js.
48+ ** SideCar** is engineered to:
1949
20- ## Purpose and Structure
50+ 1 . ** Provide Portable Runtimes** : Vendored Node.js and other runtimes eliminate
51+ user dependency requirements.
52+ 2 . ** Enable Deterministic Builds** : Organized by target triple for build-time
53+ binary selection.
54+ 3 . ** Support Multiple Platforms** : Comprehensive matrix for macOS, Linux, and
55+ Windows on x86_64 and aarch64 architectures.
56+ 4 . ** Automate Download Management** : Automated fetching, caching, and Git LFS
57+ management of runtime binaries.
58+
59+ ---
2160
22- To create a truly portable and self-contained application, we cannot rely on the
23- user having pre-installed runtimes like Node.js. Instead, we "vendor" these
24- runtimes by downloading their official, standalone distributions and storing
25- them here.
61+ ## Directory Structure 📁
2662
27- The directory is organized to allow for deterministic selection by our build
28- system:
63+ The SideCar directory is organized to allow for deterministic selection by the
64+ build system:
2965
3066```
3167SideCar/
@@ -48,22 +84,9 @@ SideCar/
4884
4985The
5086[ ` Download ` ] ( https://github.com/CodeEditorLand/SideCar/tree/Current/Source/Download.rs )
51- Rust binary in this directory is responsible for populating this structure. It
52- fetches the official distributions for various sidecars and platforms and
53- organizes them according to the convention above.
54-
55- The download tool provides:
56-
57- - ** Concurrent Downloads** : Parallel downloading of multiple binaries using
58- Tokio
59- - ** Intelligent Caching** : Maintains a [ ` Cache.json ` ] ( Cache.json ) file to track
60- downloaded versions
61- - ** Version Resolution** : Automatically resolves major versions to latest patch
62- from nodejs.org
63- - ** Git LFS Management** : Automatically updates
64- [ ` .gitattributes ` ] ( .gitattributes ) for large binary tracking
65- - ** Platform Matrix** : Supports multiple target triples (x86_64, aarch64 for
66- macOS, Linux, Windows)
87+ Rust binary is responsible for populating this structure. It fetches the
88+ official distributions for various sidecars and platforms and organizes them
89+ according to the convention above.
6790
6891During the application build, the main ` Build.rs ` orchestrator uses this
6992repository as a source. Based on build flags (e.g., ` --node-version=22 ` ), it
@@ -74,15 +97,15 @@ bundling into the final application installer.
7497
7598## Key Features 🔐
7699
77- - ** Concurrent Downloads: ** Parallel downloading of multiple runtime binaries
100+ - ** Concurrent Downloads** : Parallel downloading of multiple runtime binaries
78101 using Tokio for maximum throughput.
79- - ** Intelligent Caching: ** Maintains a ` Cache.json ` file to track downloaded
102+ - ** Intelligent Caching** : Maintains a ` Cache.json ` file to track downloaded
80103 versions and avoid redundant downloads.
81- - ** Version Resolution: ** Automatically resolves major versions to latest patch
104+ - ** Version Resolution** : Automatically resolves major versions to latest patch
82105 from nodejs.org and other sources.
83- - ** Git LFS Management: ** Automatic ` .gitattributes ` updates for large binary
106+ - ** Git LFS Management** : Automatic ` .gitattributes ` updates for large binary
84107 tracking in Git LFS.
85- - ** Platform Matrix: ** Comprehensive support for x86_64 and aarch64
108+ - ** Platform Matrix** : Comprehensive support for x86_64 and aarch64
86109 architectures across macOS, Linux, and Windows.
87110
88111---
@@ -97,7 +120,7 @@ bundling into the final application installer.
97120
98121---
99122
100- ## ` SideCar ` in the Land Ecosystem ⚙️ + 🏞️
123+ ## ` SideCar ` in the Land Ecosystem ⚙️ + 🏞️
101124
102125| Component | Role & Key Responsibilities |
103126| :---------------- | :-------------------------------------------------------------------- |
@@ -127,7 +150,7 @@ cargo build --release
127150- ` serde ` /` serde_json ` : Cache.json serialization
128151- ` git2 ` : Git LFS management
129152
130- ### Usage Pattern
153+ ### Usage Pattern 🚀
131154
132155The SideCar directory is populated once during project setup:
133156
@@ -174,7 +197,7 @@ NodeJSOrg["nodejs.org"]:::external
174197OtherRuntimes[" Other Runtime Sources" ]:::external
175198end
176199
177- subgraph " SideCar ⚙️ (Download Tool)"
200+ subgraph " SideCar ⚙️ (Download Tool)"
178201DownloadBin[" Download Binary" ]:::sidecar
179202CacheJSON[" Cache.json" ]:::sidecar
180203GitLFS[" .gitattributes (LFS)" ]:::sidecar
@@ -199,9 +222,8 @@ DownloadBin --> TargetTriple
199222
200223---
201224
202- ## Deep Dive & Component Breakdown 🔬
225+ ## Deep Dive & Component Breakdown 🔬 To understand how ` SideCar ` 's download tool works, see the following source
203226
204- To understand how ` SideCar ` 's download tool works, see the following source
205227files:
206228
207229- ** [ ` Source/Download.rs ` ] ( https://github.com/CodeEditorLand/SideCar/tree/Current/Source/Download.rs ) ** -
@@ -220,7 +242,7 @@ nodejs.org, and automatic Git LFS management for tracking large binary files.
220242| ** Related Directory** :
221243[ ` Binary ` ] ( https://github.com/CodeEditorLand/Mountain/tree/Current/Binary/README.md )
222244
223- ## License ⚖️
245+ ## License ⚖️
224246
225247This project is released into the public domain under the ** Creative Commons CC0
226248Universal** license. You are free to use, modify, distribute, and build upon
0 commit comments