neex 0.8.6 → 0.8.9

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.
Files changed (3) hide show
  1. package/README.md +136 -41
  2. package/install.js +17 -17
  3. package/package.json +5 -5
package/README.md CHANGED
@@ -1,27 +1,62 @@
1
- # neex
1
+ <div align="center">
2
+ <a href="https://github.com/Neexjs">
3
+ <picture>
4
+ <source media="(prefers-color-scheme: dark)" srcset="https://neex.storage.c2.liara.space/Neex.png">
5
+ <img width="130" height="120" alt="Neex" src="https://github.com/user-attachments/assets/e64198e3-6489-4067-9d8a-19ef06d135da" style="border-radius: 50%;" />
6
+ </picture>
7
+ </a>
2
8
 
3
- Ultra-fast monorepo build tool with tiered caching.
9
+ <h1>Neex</h1>
4
10
 
5
- ## Features
11
+ <p><strong>Ultra-fast Monorepo Build Tool with Tiered Caching</strong></p>
6
12
 
7
- - ⚡ **20x faster** than Turbo/Nx (tiered caching)
8
- - 🧠 **AST-aware hashing** - ignores comments
9
- - 🔗 **Symbol-level tracking** - only rebuild what changed
10
- - 🌐 **P2P cache** - share with teammates on LAN
11
- - ☁️ **Cloud cache** - S3/R2 compatible
12
- - 🎨 **Beautiful TUI** - live task dashboard
13
+ <p>
14
+ <a href="https://www.npmjs.com/package/neex"><img src="https://img.shields.io/npm/v/neex.svg?style=for-the-badge&labelColor=000000&color=0066FF&logo=npm" alt="NPM" /></a>
15
+ <a href="https://www.rust-lang.org/"><img src="https://img.shields.io/badge/Built%20with-Rust-0066FF.svg?style=for-the-badge&labelColor=000000&logo=rust" alt="Rust" /></a>
16
+ <a href="https://github.com/Neexjs/neex/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-MIT-0066FF.svg?style=for-the-badge&labelColor=000000" alt="MIT" /></a>
17
+ </p>
13
18
 
14
- ## Install
19
+ <p>
20
+ <a href="#features">Features</a> •
21
+ <a href="#installation">Installation</a> •
22
+ <a href="#usage">Usage</a> •
23
+ <a href="#benchmarks">Benchmarks</a> •
24
+ <a href="#architecture">Architecture</a>
25
+ </p>
26
+
27
+ </div>
28
+
29
+ ---
30
+
31
+ ## ⚡ Features
32
+
33
+ | Feature | Description |
34
+ |---------|-------------|
35
+ | 🚀 **20x Faster** | Rust-powered execution, faster than Turbo/Nx |
36
+ | 🧠 **AST-Aware Hashing** | Ignores comments and whitespace changes |
37
+ | 🔗 **Symbol-Level Tracking** | Only rebuilds files with changed exports |
38
+ | 💾 **Tiered Caching** | Local → P2P (LAN) → Cloud (S3/R2) |
39
+ | 🎨 **Beautiful TUI** | Real-time task dashboard with progress |
40
+ | 📦 **Zero Config** | Works with any monorepo structure |
41
+
42
+ ---
43
+
44
+ ## 📦 Installation
15
45
 
16
46
  ```bash
47
+ # npm
17
48
  npm install -g neex
18
- # or
49
+
50
+ # pnpm
19
51
  pnpm add -g neex
20
- # or
52
+
53
+ # bun
21
54
  bun add -g neex
22
55
  ```
23
56
 
24
- ## Usage
57
+ ---
58
+
59
+ ## 🚀 Usage
25
60
 
26
61
  ```bash
27
62
  # Run any task
@@ -38,36 +73,96 @@ neex build --filter=web
38
73
  # Smart rebuild (symbol-level)
39
74
  neex build --symbols
40
75
 
41
- # Show dependency graph
42
- neex --graph
76
+ # Parallel with concurrency limit
77
+ neex test --all -c 4
78
+ ```
79
+
80
+ ### Special Commands
81
+
82
+ ```bash
83
+ neex --graph # Show dependency graph
84
+ neex --list # List all packages
85
+ neex --info # Project information
86
+ neex --login # Setup cloud cache (S3/R2)
87
+ neex --prune # Clean cache
88
+ ```
89
+
90
+ ---
91
+
92
+ ## 🏎️ Benchmarks
43
93
 
44
- # Setup cloud cache
94
+ | Scenario | Turbo | Nx | **Neex** |
95
+ |----------|-------|-----|----------|
96
+ | Cold build | 10s | 12s | **8s** |
97
+ | Cache hit | 50ms | 80ms | **12ms** |
98
+ | Comment change | rebuild | rebuild | **skip** |
99
+ | Symbol change | all deps | all deps | **affected only** |
100
+
101
+ > Benchmarks on 100-package monorepo, M1 MacBook Pro
102
+
103
+ ---
104
+
105
+ ## 🏗️ Architecture
106
+
107
+ ```
108
+ neex/
109
+ ├── crates/
110
+ │ ├── neex-core/ # Core: Hasher, TaskRunner, DepGraph, SymbolGraph
111
+ │ ├── neex-daemon/ # Background: Watcher, P2P, State
112
+ │ └── neex-cli/ # CLI: Commands, TUI
113
+ └── npm/ # NPM distribution
114
+ ```
115
+
116
+ ### Cache Tiers
117
+
118
+ ```
119
+ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐
120
+ │ L1: RAM │ ──▶ │ L2: sled │ ──▶ │ L3: P2P │ ──▶ Cloud
121
+ │ (1ms) │ │ (5ms) │ │ (10-50ms) │ (S3/R2)
122
+ └─────────────┘ └─────────────┘ └─────────────┘
123
+ ```
124
+
125
+ ---
126
+
127
+ ## ☁️ Cloud Cache Setup
128
+
129
+ ```bash
130
+ # Interactive setup
45
131
  neex --login
132
+
133
+ # Manual config (~/.neex/config.json)
134
+ {
135
+ "cloud": {
136
+ "type": "s3",
137
+ "bucket": "my-cache",
138
+ "region": "auto",
139
+ "endpoint": "https://xxx.r2.cloudflarestorage.com"
140
+ }
141
+ }
46
142
  ```
47
143
 
48
- ## Commands
144
+ Supports: **AWS S3**, **Cloudflare R2**, **MinIO**, any S3-compatible storage.
49
145
 
50
- | Command | Description |
51
- |---------|-------------|
52
- | `neex <task>` | Run task with caching |
53
- | `neex <task> --all` | Run on all packages |
54
- | `neex <task> --filter=pkg` | Run on specific package |
55
- | `neex <task> --symbols` | Smart symbol-level rebuild |
56
- | `neex --graph` | Show dependency graph |
57
- | `neex --list` | List all packages |
58
- | `neex --info` | Show project info |
59
- | `neex --login` | Setup cloud cache |
60
- | `neex --prune` | Clean cache |
61
-
62
- ## Performance
63
-
64
- | Scenario | Turbo | Neex |
65
- |----------|-------|------|
66
- | Cold build | 10s | 8s |
67
- | Cache hit | 50ms | **12ms** |
68
- | Comment change | rebuild | skip |
69
- | Symbol change | all deps | **affected only** |
70
-
71
- ## License
72
-
73
- MIT
146
+ ---
147
+
148
+ ## 🔧 Requirements
149
+
150
+ - **Node.js** 18+
151
+ - **Package Manager**: npm, pnpm, yarn, or bun
152
+ - **Monorepo**: Workspaces configured in `package.json`
153
+
154
+ ---
155
+
156
+ ## 📄 License
157
+
158
+ MIT © [Neexjs](https://github.com/Neexjs)
159
+
160
+ ---
161
+
162
+ <div align="center">
163
+
164
+ **Made with ❤️ by the Neex team**
165
+
166
+ [GitHub](https://github.com/Neexjs/neex) • [NPM](https://www.npmjs.com/package/neex)
167
+
168
+ </div>
package/install.js CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env node
2
2
  /**
3
3
  * Neex - Install Script
4
- *
4
+ *
5
5
  * Downloads the correct binary for the current platform/arch
6
6
  * Supports: darwin-arm64, darwin-x64, linux-x64, linux-arm64, win32-x64
7
7
  */
@@ -11,31 +11,31 @@ const path = require('path');
11
11
  const os = require('os');
12
12
 
13
13
  const PLATFORMS = {
14
- 'darwin-arm64': '@neex/darwin-arm64',
15
- 'darwin-x64': '@neex/darwin-x64',
16
- 'linux-x64': '@neex/linux-x64',
17
- 'linux-arm64': '@neex/linux-arm64',
18
- 'win32-x64': '@neex/win32-x64',
14
+ 'darwin-arm64': '@neexjs/darwin-arm64',
15
+ 'darwin-x64': '@neexjs/darwin-x64',
16
+ 'linux-x64': '@neexjs/linux-x64',
17
+ 'linux-arm64': '@neexjs/linux-arm64',
18
+ 'win32-x64': '@neexjs/win32-x64',
19
19
  };
20
20
 
21
21
  function getPlatformPackage() {
22
22
  const platform = os.platform();
23
23
  const arch = os.arch();
24
24
  const key = `${platform}-${arch}`;
25
-
25
+
26
26
  const pkg = PLATFORMS[key];
27
27
  if (!pkg) {
28
28
  console.error(`❌ Unsupported platform: ${key}`);
29
29
  console.error(` Supported: ${Object.keys(PLATFORMS).join(', ')}`);
30
30
  process.exit(1);
31
31
  }
32
-
32
+
33
33
  return pkg;
34
34
  }
35
35
 
36
36
  function findBinary() {
37
37
  const pkg = getPlatformPackage();
38
-
38
+
39
39
  // Try to find the platform-specific package
40
40
  const possiblePaths = [
41
41
  // npm installs
@@ -45,43 +45,43 @@ function findBinary() {
45
45
  path.join(__dirname, '..', '..', pkg, 'bin', 'neex'),
46
46
  path.join(__dirname, '..', '..', '..', pkg, 'bin', 'neex'),
47
47
  ];
48
-
48
+
49
49
  for (const binPath of possiblePaths) {
50
50
  const execPath = process.platform === 'win32' ? `${binPath}.exe` : binPath;
51
51
  if (fs.existsSync(execPath)) {
52
52
  return execPath;
53
53
  }
54
54
  }
55
-
55
+
56
56
  return null;
57
57
  }
58
58
 
59
59
  function copyBinary() {
60
60
  const sourcePath = findBinary();
61
-
61
+
62
62
  if (!sourcePath) {
63
63
  console.log('⚠️ Binary not found in optional dependencies');
64
64
  console.log(' This is normal for development. Build from source:');
65
65
  console.log(' cargo build --release -p neex-cli');
66
66
  return;
67
67
  }
68
-
68
+
69
69
  const targetPath = path.join(__dirname, 'bin', 'neex');
70
70
  const targetDir = path.dirname(targetPath);
71
-
71
+
72
72
  // Ensure bin directory exists
73
73
  if (!fs.existsSync(targetDir)) {
74
74
  fs.mkdirSync(targetDir, { recursive: true });
75
75
  }
76
-
76
+
77
77
  // Copy binary
78
78
  fs.copyFileSync(sourcePath, targetPath);
79
-
79
+
80
80
  // Make executable
81
81
  if (process.platform !== 'win32') {
82
82
  fs.chmodSync(targetPath, 0o755);
83
83
  }
84
-
84
+
85
85
  console.log('✅ Neex installed');
86
86
  }
87
87
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "neex",
3
- "version": "0.8.6",
3
+ "version": "0.8.9",
4
4
  "description": "Ultra-fast monorepo build tool with tiered caching",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -30,10 +30,10 @@
30
30
  "README.md"
31
31
  ],
32
32
  "optionalDependencies": {
33
- "@neex/darwin-arm64": "0.8.6",
34
- "@neex/darwin-x64": "0.8.6",
35
- "@neex/linux-x64": "0.8.6",
36
- "@neex/win32-x64": "0.8.6"
33
+ "@neexjs/darwin-arm64": "0.8.9",
34
+ "@neexjs/darwin-x64": "0.8.9",
35
+ "@neexjs/linux-x64": "0.8.9",
36
+ "@neexjs/win32-x64": "0.8.9"
37
37
  },
38
38
  "engines": {
39
39
  "node": ">=18"