@datamitsu/datamitsu-linux-arm64 0.0.3-alpha-30 β 0.0.4-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +223 -25
- package/datamitsu +0 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,52 +1,250 @@
|
|
|
1
|
-
<!-- This file is intentionally minimal. Full documentation lives in website/docs/ -->
|
|
2
|
-
|
|
3
1
|
# datamitsu
|
|
4
2
|
|
|
5
|
-
>
|
|
3
|
+
<p align="center">
|
|
4
|
+
<img src="https://datamitsu.com/img/logo.png" alt="datamitsu" width="400" />
|
|
5
|
+
</p>
|
|
6
|
+
|
|
7
|
+
<p align="center">
|
|
8
|
+
<a href="https://github.com/datamitsu/datamitsu/actions/workflows/pr-checks.yml"><img src="https://github.com/datamitsu/datamitsu/actions/workflows/pr-checks.yml/badge.svg" alt="build"></a>
|
|
9
|
+
<a href="https://goreportcard.com/report/github.com/datamitsu/datamitsu"><img src="https://goreportcard.com/badge/github.com/datamitsu/datamitsu?v=2" alt="Go Report Card"></a>
|
|
10
|
+
<img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT">
|
|
11
|
+
</p>
|
|
6
12
|
|
|
7
|
-
|
|
13
|
+
> Your toolchain deserves a home.
|
|
8
14
|
|
|
9
15
|
> **Alpha**: This project is in alpha. The configuration API is not yet stabilized and may change between versions.
|
|
10
16
|
|
|
11
|
-
|
|
17
|
+
A configuration management and binary distribution tool for development tools. It downloads, verifies (SHA-256), and manages binaries and runtime-managed tools across platforms using JavaScript-powered configuration.
|
|
18
|
+
|
|
19
|
+
- **Secure.** Mandatory SHA-256 verification for all downloads. No exceptions.
|
|
20
|
+
- **Isolated.** Per-app environments with content-addressable storage.
|
|
21
|
+
- **Reproducible.** Cached binaries, lock files, and platform-specific builds.
|
|
22
|
+
|
|
23
|
+
π [Documentation](https://datamitsu.com)
|
|
12
24
|
|
|
13
|
-
|
|
25
|
+
## Install
|
|
14
26
|
|
|
15
|
-
|
|
27
|
+
With **npm**:
|
|
16
28
|
|
|
17
29
|
```bash
|
|
18
|
-
|
|
19
|
-
|
|
30
|
+
npm install @datamitsu/datamitsu
|
|
31
|
+
```
|
|
20
32
|
|
|
21
|
-
|
|
22
|
-
./datamitsu init
|
|
33
|
+
With **Go** (>= 1.23):
|
|
23
34
|
|
|
24
|
-
|
|
25
|
-
|
|
35
|
+
```bash
|
|
36
|
+
go install github.com/datamitsu/datamitsu@latest
|
|
26
37
|
```
|
|
27
38
|
|
|
39
|
+
**[Installation guide](https://datamitsu.com/docs/getting-started/installation)** with more installation options.
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
Initialize your toolchain and run checks:
|
|
44
|
+
|
|
45
|
+
#### TL;DR
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
# Initialize tools (downloads binaries, creates .datamitsu/ configs)
|
|
49
|
+
npx datamitsu init
|
|
50
|
+
|
|
51
|
+
# Run fix then lint
|
|
52
|
+
npx datamitsu check
|
|
53
|
+
|
|
54
|
+
# Or run separately
|
|
55
|
+
npx datamitsu fix
|
|
56
|
+
npx datamitsu lint
|
|
57
|
+
|
|
58
|
+
# Execute a managed binary
|
|
59
|
+
npx datamitsu exec shellcheck script.sh
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
#### More details
|
|
63
|
+
|
|
64
|
+
- [**Quick Start Guide**](https://datamitsu.com/docs/getting-started/quick-start)
|
|
65
|
+
- [**CLI Commands**](https://datamitsu.com/docs/reference/cli-commands)
|
|
66
|
+
- [**Configuration API**](https://datamitsu.com/docs/reference/configuration-api)
|
|
67
|
+
|
|
68
|
+
## Why datamitsu
|
|
69
|
+
|
|
70
|
+
- ### **Security-first binary management**
|
|
71
|
+
|
|
72
|
+
All binaries require SHA-256 verification. No hash, no download. [docs](https://datamitsu.com/docs/guides/architecture)
|
|
73
|
+
|
|
74
|
+
```javascript
|
|
75
|
+
export function getConfig(prev) {
|
|
76
|
+
return {
|
|
77
|
+
...prev,
|
|
78
|
+
apps: {
|
|
79
|
+
hadolint: {
|
|
80
|
+
binaries: {
|
|
81
|
+
linux: {
|
|
82
|
+
amd64: {
|
|
83
|
+
glibc: {
|
|
84
|
+
url: "https://github.com/hadolint/hadolint/releases/download/v2.14.0/hadolint-linux-x86_64",
|
|
85
|
+
hash: "6bf226944684f56c84dd014e8b979d27425c0148f61b3bd99bcc6f39e9dc5a47",
|
|
86
|
+
contentType: "binary",
|
|
87
|
+
},
|
|
88
|
+
},
|
|
89
|
+
},
|
|
90
|
+
},
|
|
91
|
+
},
|
|
92
|
+
},
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
- ### **Isolated environments per app**
|
|
98
|
+
|
|
99
|
+
Each app gets its own environment with content-addressable storage. Multiple versions coexist. [docs](https://datamitsu.com/docs/guides/runtime-management)
|
|
100
|
+
|
|
101
|
+
```javascript
|
|
102
|
+
export function getConfig(prev) {
|
|
103
|
+
return {
|
|
104
|
+
...prev,
|
|
105
|
+
apps: {
|
|
106
|
+
eslint: {
|
|
107
|
+
fnm: {
|
|
108
|
+
packageName: "eslint",
|
|
109
|
+
version: "10.0.0",
|
|
110
|
+
},
|
|
111
|
+
// Cached at: .apps/fnm/eslint/{hash}/node_modules
|
|
112
|
+
},
|
|
113
|
+
"eslint-legacy": {
|
|
114
|
+
fnm: {
|
|
115
|
+
packageName: "eslint",
|
|
116
|
+
version: "9.17.0",
|
|
117
|
+
},
|
|
118
|
+
// Cached at: .apps/fnm/eslint-legacy/{hash}/node_modules
|
|
119
|
+
},
|
|
120
|
+
},
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
- ### **Managed configuration distribution**
|
|
126
|
+
|
|
127
|
+
Distribute configs from runtime-managed apps via symlinks. [docs](https://datamitsu.com/docs/guides/managed-configs)
|
|
128
|
+
|
|
129
|
+
```javascript
|
|
130
|
+
export function getConfig(prev) {
|
|
131
|
+
return {
|
|
132
|
+
...prev,
|
|
133
|
+
apps: {
|
|
134
|
+
"my-eslint-config": {
|
|
135
|
+
fnm: {
|
|
136
|
+
packageName: "@myorg/eslint-config",
|
|
137
|
+
version: "2.0.0",
|
|
138
|
+
},
|
|
139
|
+
links: {
|
|
140
|
+
"eslint-config": "dist/eslint.config.js",
|
|
141
|
+
},
|
|
142
|
+
},
|
|
143
|
+
},
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
Creates `.datamitsu/` with symlinks:
|
|
149
|
+
|
|
150
|
+
```
|
|
151
|
+
.datamitsu/
|
|
152
|
+
βββ eslint-config β ../.apps/fnm/my-eslint-config/{hash}/dist/eslint.config.js
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
- ### **Layered configuration**
|
|
156
|
+
|
|
157
|
+
Chain configs with inheritance and remote config support. [docs](https://datamitsu.com/docs/guides/configuration-layers)
|
|
158
|
+
|
|
159
|
+
```javascript
|
|
160
|
+
// datamitsu.config.ts
|
|
161
|
+
export function getRemoteConfigs() {
|
|
162
|
+
return [
|
|
163
|
+
{
|
|
164
|
+
url: "https://example.com/base-config.ts",
|
|
165
|
+
hash: "sha256:abc123...",
|
|
166
|
+
},
|
|
167
|
+
];
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
export function getConfig(prev) {
|
|
171
|
+
return {
|
|
172
|
+
...prev,
|
|
173
|
+
apps: {
|
|
174
|
+
...prev.apps,
|
|
175
|
+
// Override or add apps here
|
|
176
|
+
},
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
- ### **JavaScript configuration engine**
|
|
182
|
+
|
|
183
|
+
Full goja runtime with built-in APIs for path manipulation, formatting (YAML/TOML/INI), and hashing. [docs](https://datamitsu.com/docs/reference/configuration-api)
|
|
184
|
+
|
|
185
|
+
```javascript
|
|
186
|
+
export function getConfig(prev) {
|
|
187
|
+
return {
|
|
188
|
+
...prev,
|
|
189
|
+
init: {
|
|
190
|
+
"lefthook.yaml": {
|
|
191
|
+
content: (context) => {
|
|
192
|
+
const existing = YAML.parse(context.existingContent || "");
|
|
193
|
+
return YAML.stringify({
|
|
194
|
+
...existing,
|
|
195
|
+
"pre-commit": {
|
|
196
|
+
commands: {
|
|
197
|
+
"datamitsu-fix": { run: "datamitsu fix" },
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
});
|
|
201
|
+
},
|
|
202
|
+
},
|
|
203
|
+
},
|
|
204
|
+
};
|
|
205
|
+
}
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
- ### **Programmatic API**
|
|
209
|
+
|
|
210
|
+
If you need to integrate datamitsu into your build scripts or tools, a type-safe JavaScript API is available. [docs](https://datamitsu.com/docs/reference/js-api)
|
|
211
|
+
|
|
212
|
+
```javascript
|
|
213
|
+
import { fix, lint } from "@datamitsu/datamitsu";
|
|
214
|
+
|
|
215
|
+
await fix({ files: ["src/generated.ts"] });
|
|
216
|
+
const result = await lint({ explain: "json" });
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
28
221
|
## Documentation
|
|
29
222
|
|
|
30
|
-
Full documentation is available at [https://datamitsu.com](https://datamitsu.com)
|
|
223
|
+
Full documentation is available at [https://datamitsu.com](https://datamitsu.com)
|
|
31
224
|
|
|
32
225
|
**Getting Started:**
|
|
33
226
|
|
|
34
|
-
- [Installation](
|
|
35
|
-
- [Quick Start Guide](
|
|
36
|
-
- [About datamitsu](
|
|
227
|
+
- [Installation](https://datamitsu.com/docs/getting-started/installation)
|
|
228
|
+
- [Quick Start Guide](https://datamitsu.com/docs/getting-started/quick-start)
|
|
229
|
+
- [About datamitsu](https://datamitsu.com/docs/about) β Why datamitsu exists
|
|
37
230
|
|
|
38
|
-
**
|
|
231
|
+
**Guides:**
|
|
39
232
|
|
|
40
|
-
- [
|
|
41
|
-
- [
|
|
42
|
-
- [
|
|
233
|
+
- [Runtime Management](https://datamitsu.com/docs/guides/runtime-management)
|
|
234
|
+
- [Managed Configs](https://datamitsu.com/docs/guides/managed-configs)
|
|
235
|
+
- [Configuration Layers](https://datamitsu.com/docs/guides/configuration-layers)
|
|
236
|
+
- [Architecture](https://datamitsu.com/docs/guides/architecture)
|
|
237
|
+
|
|
238
|
+
**Reference:**
|
|
43
239
|
|
|
44
|
-
|
|
240
|
+
- [CLI Commands](https://datamitsu.com/docs/reference/cli-commands)
|
|
241
|
+
- [Configuration API](https://datamitsu.com/docs/reference/configuration-api)
|
|
242
|
+
- [JavaScript API](https://datamitsu.com/docs/reference/js-api)
|
|
243
|
+
- [Comparison with mise/moon/Nx](https://datamitsu.com/docs/reference/comparison)
|
|
45
244
|
|
|
46
|
-
|
|
245
|
+
## Support datamitsu
|
|
47
246
|
|
|
48
|
-
|
|
49
|
-
- [Creating Wrapper Packages](website/docs/contributing/creating-wrappers.md) β Build config distributions
|
|
247
|
+
β€οΈ [Sponsor datamitsu](https://datamitsu.com/sponsor)
|
|
50
248
|
|
|
51
249
|
## License
|
|
52
250
|
|
package/datamitsu
CHANGED
|
Binary file
|
package/package.json
CHANGED