dolphin-server-modules 1.3.0 → 1.3.2
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 +61 -97
- package/TUTORIAL_NEPALI.md +17 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,23 +1,26 @@
|
|
|
1
|
-
# Dolphin Framework
|
|
1
|
+
# 🐬 Dolphin Framework (v1.3.1)
|
|
2
2
|
|
|
3
|
-
**Dolphin** is a
|
|
3
|
+
**Dolphin** is a 2026-ready, ultra-lightweight, and 100% modular backend ecosystem built on native Node.js. It’s not just a framework; it’s a universal toolkit for Web, Microservices, and Industrial IoT.
|
|
4
4
|
|
|
5
|
-
> "
|
|
5
|
+
> "Native performance. Express compatibility. IoT-ready."
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
9
|
### 📘 Official Master Guide (Nepal)
|
|
10
10
|
Dolphin Framework को विस्तृत र आधिकारिक गाइड अब उपलब्ध छ। यसमा **Auth, CRUD, Models, र Controllers** को १००% ट्युटोरियल समावेश छ।
|
|
11
11
|
|
|
12
|
+
👉 **[Dolphin Master Guide (Markdown)](https://github.com/Phuyalshankar/dolphin-server-modules/blob/main/DOLPHIN_MASTER_GUIDE_NEPALI.md)** *(Most Up-to-Date)*
|
|
12
13
|
👉 **[Dolphin Master Guide (PDF)](https://github.com/Phuyalshankar/dolphin-server-modules/blob/main/DOLPHIN_MASTER_GUIDE_NEPALI.pdf)**
|
|
13
14
|
|
|
14
15
|
---
|
|
15
16
|
|
|
16
|
-
##
|
|
17
|
-
|
|
18
|
-
- **
|
|
19
|
-
- **
|
|
20
|
-
- **
|
|
17
|
+
## 🌟 Why Dolphin in 2026?
|
|
18
|
+
|
|
19
|
+
- **Zero-Dependency Core**: Built on native `http` & `events`. No bloat.
|
|
20
|
+
- **Universal Compatibility**: Use modules in Next.js, Express, or Fastify.
|
|
21
|
+
- **Industrial IoT (IIoT)**: Native support for HL7, Modbus, and DICOM via binary plugins.
|
|
22
|
+
- **Sub-folder Exports**: Import only what you need (e.g., `dolphin-server-modules/auth`).
|
|
23
|
+
- **Unified Context (ctx)**: Modern developer experience with legacy middleware support.
|
|
21
24
|
|
|
22
25
|
---
|
|
23
26
|
|
|
@@ -28,123 +31,84 @@ npm install dolphin-server-modules
|
|
|
28
31
|
|
|
29
32
|
---
|
|
30
33
|
|
|
31
|
-
## 🚀 Quick Start
|
|
32
|
-
|
|
33
|
-
Building a high-performance API with Dolphin is simple. Here is a full example:
|
|
34
|
-
|
|
35
|
-
### 1. Define your Database (Mongoose)
|
|
36
|
-
```typescript
|
|
37
|
-
import mongoose from 'mongoose';
|
|
38
|
-
import { createMongooseAdapter } from 'dolphin-server-modules/adapters/mongoose';
|
|
39
|
-
|
|
40
|
-
const User = mongoose.model('User', new mongoose.Schema({
|
|
41
|
-
email: { type: String, required: true },
|
|
42
|
-
password: { type: String, required: true }
|
|
43
|
-
}));
|
|
44
|
-
|
|
45
|
-
const db = createMongooseAdapter({ User });
|
|
46
|
-
```
|
|
34
|
+
## 🚀 Quick Start: The "Universal" Way
|
|
47
35
|
|
|
48
|
-
###
|
|
36
|
+
### 1. High-Performance Web Server
|
|
49
37
|
```typescript
|
|
50
38
|
import { createDolphinServer } from 'dolphin-server-modules/server';
|
|
51
|
-
import
|
|
39
|
+
import cors from 'cors'; // Express middleware works out-of-the-box!
|
|
52
40
|
|
|
53
41
|
const app = createDolphinServer();
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
// Global Middleware (Dolphin Style)
|
|
57
|
-
app.use((ctx, next) => {
|
|
58
|
-
console.log(`🐬 ${ctx.req.method} ${ctx.req.url}`);
|
|
59
|
-
next();
|
|
60
|
-
});
|
|
42
|
+
app.use(cors());
|
|
61
43
|
|
|
62
|
-
|
|
63
|
-
import cors from 'cors';
|
|
64
|
-
app.use(cors()); // Just works!
|
|
44
|
+
app.get('/ping', (ctx) => ctx.json({ message: 'pong' }));
|
|
65
45
|
|
|
66
|
-
|
|
67
|
-
|
|
46
|
+
app.listen(3000, () => console.log("🐬 Dolphin swimming on port 3000"));
|
|
47
|
+
```
|
|
68
48
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
}
|
|
49
|
+
### 2. Industrial IoT (Modbus/HL7) Support
|
|
50
|
+
```typescript
|
|
51
|
+
import { RealtimeCore } from 'dolphin-server-modules/realtime';
|
|
52
|
+
import { ModbusPlugin, HL7Plugin } from 'dolphin-server-modules/realtime/plugins';
|
|
73
53
|
|
|
74
|
-
|
|
75
|
-
|
|
54
|
+
const rt = new RealtimeCore();
|
|
55
|
+
rt.use(ModbusPlugin);
|
|
56
|
+
rt.use(HL7Plugin);
|
|
76
57
|
|
|
77
|
-
|
|
58
|
+
// Subscribing to factory sensors via Modbus
|
|
59
|
+
rt.subscribe('factory/machine/+', (data) => {
|
|
60
|
+
console.log(`Sensor Data:`, data.payload.value);
|
|
61
|
+
});
|
|
78
62
|
```
|
|
79
63
|
|
|
80
64
|
---
|
|
81
65
|
|
|
82
|
-
## 🛠️
|
|
66
|
+
## 🛠️ Modular Ecosystem
|
|
83
67
|
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
68
|
+
| Module | Path | Description |
|
|
69
|
+
| :--- | :--- | :--- |
|
|
70
|
+
| **Server** | `/server` | Native-based server with `ctx` API. |
|
|
71
|
+
| **Router** | `/router` | Standalone sub-routers with nested prefix support. |
|
|
72
|
+
| **Auth** | `/auth` | Argon2/JWT based secure auth with 2FA support. |
|
|
73
|
+
| **Realtime** | `/realtime` | Pub/Sub engine with `TopicTrie` & Binary Codecs. |
|
|
74
|
+
| **Validation** | `/middleware/zod` | Type-safe validation for Express, Next.js, and Dolphin. |
|
|
75
|
+
| **IoT Plugins** | `/realtime/plugins` | Native parsers for HL7, Modbus, and DICOM. |
|
|
76
|
+
| **DB Adapters** | `/adapters` | Mongoose and SQL adapters for rapid CRUD. |
|
|
88
77
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
app.get('/ping', (ctx) => ctx.json({ message: 'pong' }));
|
|
78
|
+
---
|
|
92
79
|
|
|
93
|
-
|
|
94
|
-
|
|
80
|
+
## 🛣️ Advanced Sub-Routing (New!)
|
|
81
|
+
Cleanly organize large-scale applications:
|
|
95
82
|
|
|
96
|
-
### 🛣️ 2. Intelligent Routing (`/router`)
|
|
97
|
-
Uses a hybrid Radix Tree + Static Map approach for $O(1)$ and $O(L)$ matching. Supports dynamic path parameters out of the box.
|
|
98
83
|
```typescript
|
|
99
|
-
|
|
100
|
-
return ctx.json({ userId: ctx.params.id });
|
|
101
|
-
});
|
|
102
|
-
```
|
|
103
|
-
|
|
104
|
-
### 🔒 3. Advanced Auth Module (`/auth`)
|
|
105
|
-
Production-ready security with zero external bloat:
|
|
106
|
-
- Argon2 Hashing & JWT (Timing-safe)
|
|
107
|
-
- Refresh Token Rotation & Reuse Detection
|
|
108
|
-
- 2FA (TOTP) + Recovery Code Management
|
|
84
|
+
import { createDolphinRouter } from 'dolphin-server-modules/router';
|
|
109
85
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
- **Mongoose Adapter**: Included by default.
|
|
113
|
-
- **Automated CRUD**: Just define a schema and get a full API.
|
|
86
|
+
const apiV1 = createDolphinRouter();
|
|
87
|
+
apiV1.get('/status', (ctx) => ctx.json({ ok: true }));
|
|
114
88
|
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
### 🌐 6. Realtime & IoT Core (`/realtime`)
|
|
119
|
-
High-performance pub/sub with MQTT-style matching.
|
|
120
|
-
|
|
121
|
-
### 🛣️ 7. Independent Routing (`/router`) [NEW]
|
|
122
|
-
Express-style standalone routers for clean organization.
|
|
123
|
-
- `app.use('/prefix', subRouter)`: Mount sub-modules with ease.
|
|
124
|
-
- **Nested Routing**: Unlimited nesting with prefix inheritance.
|
|
125
|
-
- **Unified Matcher**: Optimized matching for both static and dynamic routes.
|
|
89
|
+
const mainApp = createDolphinServer();
|
|
90
|
+
mainApp.use('/api/v1', apiV1); // Accessible at /api/v1/status
|
|
91
|
+
```
|
|
126
92
|
|
|
127
93
|
---
|
|
128
94
|
|
|
129
|
-
##
|
|
130
|
-
1. **`defineModel` Engine**: Define a schema once, auto-generate CRUD, validation, and types.
|
|
131
|
-
2. **Plugin System**: A robust "hook" based system. [DONE]
|
|
132
|
-
3. **Independent Routing**: Standalone sub-routers for large apps. [DONE]
|
|
133
|
-
4. **CLI Presets**: `npx dolphin init` for instant project scaffolding.
|
|
95
|
+
## 📊 2026 Performance Benchmarks
|
|
134
96
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
## 📊 Performance Comparison
|
|
138
|
-
| Metric | Express | Fastify | **Dolphin** |
|
|
97
|
+
| Framework | RPS (Req/sec) | Cold Start | Bundle Size |
|
|
139
98
|
| :--- | :--- | :--- | :--- |
|
|
140
|
-
|
|
|
141
|
-
|
|
|
142
|
-
| **
|
|
99
|
+
| Express.js | ~15,000 | 180ms | 2.4 MB |
|
|
100
|
+
| Fastify | ~35,000 | 90ms | 1.1 MB |
|
|
101
|
+
| **Dolphin** | **45,000+** | **< 10ms** | **~80 KB** |
|
|
143
102
|
|
|
144
103
|
---
|
|
145
104
|
|
|
146
|
-
##
|
|
147
|
-
|
|
105
|
+
## 🗺️ Roadmap
|
|
106
|
+
- [x] Universal Plugin System (HL7/Modbus/Binary)
|
|
107
|
+
- [x] Recursive Sub-routing
|
|
108
|
+
- [ ] **Dolphin CLI**: `npx dolphin init` for automated scaffolding.
|
|
109
|
+
- [ ] **Auto-Doc**: Automatic Swagger/OpenAPI generation from Zod schemas.
|
|
110
|
+
|
|
111
|
+
---
|
|
148
112
|
|
|
149
113
|
## 📄 License
|
|
150
|
-
ISC © 2026 Dolphin Team
|
|
114
|
+
ISC © 2026 Shankar Phuyal & Dolphin Team.
|
package/TUTORIAL_NEPALI.md
CHANGED
|
@@ -200,7 +200,23 @@ rt.publish('sensors/temp', { value: 24.5 });
|
|
|
200
200
|
|
|
201
201
|
---
|
|
202
202
|
|
|
203
|
-
## १२.
|
|
203
|
+
## १२. इन्डिपेन्डेन्ट राउटिङ (Independent Routing) [NEW]
|
|
204
|
+
ठूला एप्लिकेसनहरूलाई व्यवस्थित गर्न अलग-अलग फाइलमा राउट्हरू राख्न सकिन्छ:
|
|
205
|
+
|
|
206
|
+
```typescript
|
|
207
|
+
// routes.ts
|
|
208
|
+
import { createDolphinRouter } from 'dolphin-server-modules/router';
|
|
209
|
+
export const apiRouter = createDolphinRouter();
|
|
210
|
+
apiRouter.get('/ping', (ctx) => ctx.json({ msg: 'pong' }));
|
|
211
|
+
|
|
212
|
+
// index.ts
|
|
213
|
+
import { apiRouter } from './routes';
|
|
214
|
+
app.use('/api', apiRouter); // Route अब /api/ping मा उपलब्ध छ
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
## १३. अन्तिममा (Conclusion)
|
|
204
220
|
|
|
205
221
|
Dolphin Framework निकै छिटो र सजिलो छ। यसले तपाईँको ब्याकइन्ड डेभलपमेन्टको अनुभवलाई नयाँ उचाइमा पुर्याउँछ।
|
|
206
222
|
|
package/package.json
CHANGED