@shumoku/core 0.1.0 → 0.1.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 +56 -0
- package/package.json +1 -1
package/README.md
ADDED
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# @shumoku/core
|
|
2
|
+
|
|
3
|
+
Core library for Shumoku network topology visualization.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @shumoku/core
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Features
|
|
12
|
+
|
|
13
|
+
- **Data models** - Type-safe network topology models (Device, Port, Link, Module)
|
|
14
|
+
- **Layout engines** - Automatic positioning with ELK.js (hierarchical layout)
|
|
15
|
+
- **SVG renderer** - High-quality vector output
|
|
16
|
+
- **Themes** - Built-in modern and dark themes
|
|
17
|
+
|
|
18
|
+
## Usage
|
|
19
|
+
|
|
20
|
+
```typescript
|
|
21
|
+
import { NetworkGraph, HierarchicalLayoutEngine, SvgRenderer } from '@shumoku/core'
|
|
22
|
+
|
|
23
|
+
// Create a network graph
|
|
24
|
+
const graph: NetworkGraph = {
|
|
25
|
+
version: '1.0.0',
|
|
26
|
+
devices: [
|
|
27
|
+
{ id: 'router1', name: 'Router', type: 'router' },
|
|
28
|
+
{ id: 'switch1', name: 'Switch', type: 'l2-switch' }
|
|
29
|
+
],
|
|
30
|
+
links: [
|
|
31
|
+
{ id: 'link1', source: 'router1', target: 'switch1' }
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// Layout the graph
|
|
36
|
+
const engine = new HierarchicalLayoutEngine()
|
|
37
|
+
const layout = await engine.layout(graph)
|
|
38
|
+
|
|
39
|
+
// Render to SVG
|
|
40
|
+
const renderer = new SvgRenderer()
|
|
41
|
+
const svg = renderer.render(layout)
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Related Packages
|
|
45
|
+
|
|
46
|
+
- [`@shumoku/parser-yaml`](https://www.npmjs.com/package/@shumoku/parser-yaml) - YAML parser for network definitions
|
|
47
|
+
- [`@shumoku/icons`](https://www.npmjs.com/package/@shumoku/icons) - Vendor-specific icons (Yamaha, Aruba, AWS, Juniper)
|
|
48
|
+
|
|
49
|
+
## Documentation
|
|
50
|
+
|
|
51
|
+
- [Playground](https://shumoku.packof.me/) - Interactive demo
|
|
52
|
+
- [GitHub](https://github.com/konoe-akitoshi/shumoku)
|
|
53
|
+
|
|
54
|
+
## License
|
|
55
|
+
|
|
56
|
+
MIT
|