@fjell/registry 4.4.9 → 4.4.11
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/dist/Registry.cjs +36 -3
- package/dist/Registry.js +36 -3
- package/dist/RegistryStats.cjs +200 -0
- package/dist/RegistryStats.d.ts +103 -0
- package/dist/RegistryStats.js +196 -0
- package/dist/index.cjs +229 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -1
- package/dist/types.d.ts +7 -0
- package/docs/README.md +5 -5
- package/docs/index.html +1 -1
- package/docs/memory-data/scaling-10-instances.json +206 -206
- package/docs/memory-data/scaling-100-instances.json +206 -206
- package/docs/memory-data/scaling-1000-instances.json +108 -108
- package/docs/memory-data/scaling-10000-instances.json +49 -49
- package/docs/memory-data/scaling-20-instances.json +208 -208
- package/docs/memory-data/scaling-200-instances.json +206 -206
- package/docs/memory-data/scaling-2000-instances.json +109 -109
- package/docs/memory-data/scaling-50-instances.json +206 -206
- package/docs/memory-data/scaling-500-instances.json +108 -108
- package/docs/memory-data/scaling-5000-instances.json +49 -49
- package/docs/memory-overhead.svg +16 -16
- package/docs/memory.md +122 -122
- package/docs/public/memory.md +111 -111
- package/docs/public/package.json +65 -0
- package/docs/src/App.css +84 -22
- package/docs/src/App.tsx +48 -25
- package/docs/src/index.css +1 -7
- package/docs/timing-range.svg +38 -40
- package/docs/timing.md +122 -122
- package/examples/README.md +19 -0
- package/examples/registry-statistics-example.ts +264 -0
- package/package.json +1 -1
package/docs/src/App.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useEffect, useState } from 'react'
|
|
2
2
|
import ReactMarkdown from 'react-markdown'
|
|
3
3
|
import { Prism as SyntaxHighlighter } from 'react-syntax-highlighter'
|
|
4
|
-
import {
|
|
4
|
+
import { oneLight } from 'react-syntax-highlighter/dist/esm/styles/prism'
|
|
5
5
|
import remarkGfm from 'remark-gfm'
|
|
6
6
|
import './App.css'
|
|
7
7
|
|
|
@@ -14,10 +14,10 @@ interface DocumentSection {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
const documentSections: DocumentSection[] = [
|
|
17
|
-
{ id: 'overview', title: 'Foundation', subtitle: 'Core concepts & philosophy', file: '/README.md' },
|
|
18
|
-
{ id: 'getting-started', title: 'Getting Started', subtitle: 'Your first steps with Fjell', file: '/
|
|
19
|
-
{ id: 'examples', title: 'Examples', subtitle: 'Code examples & usage patterns', file: '/
|
|
20
|
-
{ id: 'performance', title: 'Performance', subtitle: 'Memory, timing & optimization', file: '/memory.md' }
|
|
17
|
+
{ id: 'overview', title: 'Foundation', subtitle: 'Core concepts & philosophy', file: '/registry/README.md' },
|
|
18
|
+
{ id: 'getting-started', title: 'Getting Started', subtitle: 'Your first steps with Fjell', file: '/registry/examples-README.md' },
|
|
19
|
+
{ id: 'examples', title: 'Examples', subtitle: 'Code examples & usage patterns', file: '/registry/examples-README.md' },
|
|
20
|
+
{ id: 'performance', title: 'Performance', subtitle: 'Memory, timing & optimization', file: '/registry/memory.md' }
|
|
21
21
|
];
|
|
22
22
|
|
|
23
23
|
const App: React.FC = () => {
|
|
@@ -26,6 +26,7 @@ const App: React.FC = () => {
|
|
|
26
26
|
const [loading, setLoading] = useState(true)
|
|
27
27
|
const [sidebarOpen, setSidebarOpen] = useState(false)
|
|
28
28
|
const [fullscreenImage, setFullscreenImage] = useState<string | null>(null)
|
|
29
|
+
const [version, setVersion] = useState<string>('4.4.10')
|
|
29
30
|
|
|
30
31
|
useEffect(() => {
|
|
31
32
|
const loadDocuments = async () => {
|
|
@@ -51,7 +52,25 @@ const App: React.FC = () => {
|
|
|
51
52
|
setLoading(false)
|
|
52
53
|
}
|
|
53
54
|
|
|
55
|
+
const loadVersion = async () => {
|
|
56
|
+
try {
|
|
57
|
+
const response = await fetch('/registry/package.json')
|
|
58
|
+
if (response.ok) {
|
|
59
|
+
const packageData = await response.json()
|
|
60
|
+
setVersion(packageData.version)
|
|
61
|
+
console.log('Version loaded:', packageData.version)
|
|
62
|
+
} else {
|
|
63
|
+
console.error('Failed to fetch package.json:', response.status)
|
|
64
|
+
setVersion('4.4.10') // Fallback version
|
|
65
|
+
}
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.error('Error loading version:', error)
|
|
68
|
+
setVersion('4.4.10') // Fallback version
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
|
|
54
72
|
loadDocuments()
|
|
73
|
+
loadVersion()
|
|
55
74
|
}, [])
|
|
56
75
|
|
|
57
76
|
const getFallbackContent = (sectionId: string): string => {
|
|
@@ -206,7 +225,16 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
206
225
|
|
|
207
226
|
<div className="header-actions">
|
|
208
227
|
<a
|
|
209
|
-
href=
|
|
228
|
+
href={`https://github.com/getfjell/registry/releases/tag/v${version}`}
|
|
229
|
+
target="_blank"
|
|
230
|
+
rel="noopener noreferrer"
|
|
231
|
+
className="version-badge"
|
|
232
|
+
title={`Release v${version}`}
|
|
233
|
+
>
|
|
234
|
+
v{version}
|
|
235
|
+
</a>
|
|
236
|
+
<a
|
|
237
|
+
href="https://github.com/getfjell/registry"
|
|
210
238
|
target="_blank"
|
|
211
239
|
rel="noopener noreferrer"
|
|
212
240
|
className="header-link"
|
|
@@ -236,11 +264,6 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
236
264
|
<div className="layout">
|
|
237
265
|
<nav className={`sidebar ${sidebarOpen ? 'sidebar-open' : ''}`}>
|
|
238
266
|
<div className="nav-content">
|
|
239
|
-
<div className="nav-header">
|
|
240
|
-
<h3 className="nav-title">Explore</h3>
|
|
241
|
-
<p className="nav-subtitle">Navigate through concepts</p>
|
|
242
|
-
</div>
|
|
243
|
-
|
|
244
267
|
<div className="nav-sections">
|
|
245
268
|
{documentSections.map((section) => (
|
|
246
269
|
<button
|
|
@@ -261,7 +284,7 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
261
284
|
|
|
262
285
|
{/* Artistic Logo Placement */}
|
|
263
286
|
<img
|
|
264
|
-
src="/
|
|
287
|
+
src="/registry/icon.png"
|
|
265
288
|
alt="Fjell Registry"
|
|
266
289
|
className="fjell-logo"
|
|
267
290
|
title="Fjell Registry - Service location that weaves through the mist"
|
|
@@ -314,7 +337,7 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
314
337
|
const match = /language-(\w+)/.exec(className || '')
|
|
315
338
|
return !props.inline && match ? (
|
|
316
339
|
<SyntaxHighlighter
|
|
317
|
-
style={
|
|
340
|
+
style={oneLight as { [key: string]: React.CSSProperties }}
|
|
318
341
|
language={match[1]}
|
|
319
342
|
PreTag="div"
|
|
320
343
|
{...props}
|
|
@@ -349,7 +372,7 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
349
372
|
<summary>View Code</summary>
|
|
350
373
|
<div className="example-code-block">
|
|
351
374
|
<SyntaxHighlighter
|
|
352
|
-
style={
|
|
375
|
+
style={oneLight as { [key: string]: React.CSSProperties }}
|
|
353
376
|
language="bash"
|
|
354
377
|
PreTag="div"
|
|
355
378
|
>
|
|
@@ -366,7 +389,7 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
366
389
|
<summary>View Code</summary>
|
|
367
390
|
<div className="example-code-block">
|
|
368
391
|
<SyntaxHighlighter
|
|
369
|
-
style={
|
|
392
|
+
style={oneLight as { [key: string]: React.CSSProperties }}
|
|
370
393
|
language="bash"
|
|
371
394
|
PreTag="div"
|
|
372
395
|
>
|
|
@@ -383,7 +406,7 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
383
406
|
<summary>View Code</summary>
|
|
384
407
|
<div className="example-code-block">
|
|
385
408
|
<SyntaxHighlighter
|
|
386
|
-
style={
|
|
409
|
+
style={oneLight as { [key: string]: React.CSSProperties }}
|
|
387
410
|
language="bash"
|
|
388
411
|
PreTag="div"
|
|
389
412
|
>
|
|
@@ -394,13 +417,13 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
394
417
|
</div>
|
|
395
418
|
|
|
396
419
|
<div className="example-card">
|
|
397
|
-
<h3
|
|
420
|
+
<h3>Coordinate Discovery</h3>
|
|
398
421
|
<p>Service introspection and discovery patterns.</p>
|
|
399
422
|
<details>
|
|
400
423
|
<summary>View Code</summary>
|
|
401
424
|
<div className="example-code-block">
|
|
402
425
|
<SyntaxHighlighter
|
|
403
|
-
style={
|
|
426
|
+
style={oneLight as { [key: string]: React.CSSProperties }}
|
|
404
427
|
language="bash"
|
|
405
428
|
PreTag="div"
|
|
406
429
|
>
|
|
@@ -417,7 +440,7 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
417
440
|
<summary>View Code</summary>
|
|
418
441
|
<div className="example-code-block">
|
|
419
442
|
<SyntaxHighlighter
|
|
420
|
-
style={
|
|
443
|
+
style={oneLight as { [key: string]: React.CSSProperties }}
|
|
421
444
|
language="bash"
|
|
422
445
|
PreTag="div"
|
|
423
446
|
>
|
|
@@ -437,7 +460,7 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
437
460
|
const match = /language-(\w+)/.exec(className || '')
|
|
438
461
|
return !props.inline && match ? (
|
|
439
462
|
<SyntaxHighlighter
|
|
440
|
-
style={
|
|
463
|
+
style={oneLight as { [key: string]: React.CSSProperties }}
|
|
441
464
|
language={match[1]}
|
|
442
465
|
PreTag="div"
|
|
443
466
|
{...props}
|
|
@@ -467,20 +490,20 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
467
490
|
<div className="svg-display">
|
|
468
491
|
<h3>Memory Overhead Analysis</h3>
|
|
469
492
|
<img
|
|
470
|
-
src="/
|
|
493
|
+
src="/registry/memory-overhead.svg"
|
|
471
494
|
alt="Memory Overhead Chart"
|
|
472
495
|
className="performance-chart clickable-chart"
|
|
473
|
-
onClick={() => setFullscreenImage('/
|
|
496
|
+
onClick={() => setFullscreenImage('/registry/memory-overhead.svg')}
|
|
474
497
|
title="Click to view full screen"
|
|
475
498
|
/>
|
|
476
499
|
</div>
|
|
477
500
|
<div className="svg-display">
|
|
478
501
|
<h3>Timing Performance Analysis</h3>
|
|
479
502
|
<img
|
|
480
|
-
src="/
|
|
503
|
+
src="/registry/timing-range.svg"
|
|
481
504
|
alt="Timing Performance Chart"
|
|
482
505
|
className="performance-chart clickable-chart"
|
|
483
|
-
onClick={() => setFullscreenImage('/
|
|
506
|
+
onClick={() => setFullscreenImage('/registry/timing-range.svg')}
|
|
484
507
|
title="Click to view full screen"
|
|
485
508
|
/>
|
|
486
509
|
</div>
|
|
@@ -494,7 +517,7 @@ Recommended Node.js heap size settings and monitoring approaches for large-scale
|
|
|
494
517
|
const match = /language-(\w+)/.exec(className || '')
|
|
495
518
|
return !props.inline && match ? (
|
|
496
519
|
<SyntaxHighlighter
|
|
497
|
-
style={
|
|
520
|
+
style={oneLight as { [key: string]: React.CSSProperties }}
|
|
498
521
|
language={match[1]}
|
|
499
522
|
PreTag="div"
|
|
500
523
|
{...props}
|
package/docs/src/index.css
CHANGED
package/docs/timing-range.svg
CHANGED
|
@@ -31,18 +31,16 @@
|
|
|
31
31
|
<g transform="translate(110,60)">
|
|
32
32
|
|
|
33
33
|
<!-- Grid lines (logarithmic scale) -->
|
|
34
|
-
<line x1="0" y1="
|
|
35
|
-
<text x="-10" y="
|
|
36
|
-
<line x1="0" y1="
|
|
37
|
-
<text x="-10" y="
|
|
38
|
-
<line x1="0" y1="
|
|
39
|
-
<text x="-10" y="
|
|
40
|
-
<line x1="0" y1="
|
|
41
|
-
<text x="-10" y="
|
|
42
|
-
<line x1="0" y1="
|
|
43
|
-
<text x="-10" y="
|
|
44
|
-
<line x1="0" y1="106.12992469257341" x2="1015" y2="106.12992469257341" class="grid"/>
|
|
45
|
-
<text x="-10" y="110.12992469257341" text-anchor="end" class="label">5.0µs</text>
|
|
34
|
+
<line x1="0" y1="412.29916951650193" x2="1015" y2="412.29916951650193" class="grid"/>
|
|
35
|
+
<text x="-10" y="416.29916951650193" text-anchor="end" class="label">0.20µs</text>
|
|
36
|
+
<line x1="0" y1="313.6934353383697" x2="1015" y2="313.6934353383697" class="grid"/>
|
|
37
|
+
<text x="-10" y="317.6934353383697" text-anchor="end" class="label">0.50µs</text>
|
|
38
|
+
<line x1="0" y1="239.10107697977517" x2="1015" y2="239.10107697977517" class="grid"/>
|
|
39
|
+
<text x="-10" y="243.10107697977517" text-anchor="end" class="label">1.0µs</text>
|
|
40
|
+
<line x1="0" y1="164.50871862118066" x2="1015" y2="164.50871862118066" class="grid"/>
|
|
41
|
+
<text x="-10" y="168.50871862118066" text-anchor="end" class="label">2.0µs</text>
|
|
42
|
+
<line x1="0" y1="65.90298444304835" x2="1015" y2="65.90298444304835" class="grid"/>
|
|
43
|
+
<text x="-10" y="69.90298444304835" text-anchor="end" class="label">5.0µs</text>
|
|
46
44
|
<line x1="0" y1="0" x2="0" y2="460" class="grid"/>
|
|
47
45
|
<text x="0" y="480" text-anchor="middle" class="label">10</text>
|
|
48
46
|
<line x1="76.38636139973525" y1="0" x2="76.38636139973525" y2="460" class="grid"/>
|
|
@@ -78,34 +76,34 @@
|
|
|
78
76
|
<!-- Axis labels -->
|
|
79
77
|
<text x="507.5" y="510" text-anchor="middle" class="axis-title">Tree Size (items) - Log Scale</text>
|
|
80
78
|
<text transform="rotate(-90,-70,230)" x="-70" y="230" text-anchor="middle" class="axis-title">Execution Time (µs)</text>
|
|
81
|
-
<path d="M 0
|
|
82
|
-
<path d="M 0
|
|
83
|
-
<circle cx="0" cy="
|
|
84
|
-
<circle cx="76.38636139973525" cy="
|
|
85
|
-
<circle cx="177.36363860026475" cy="
|
|
86
|
-
<circle cx="253.75" cy="
|
|
87
|
-
<circle cx="330.1363613997352" cy="
|
|
88
|
-
<circle cx="431.1136386002648" cy="
|
|
89
|
-
<circle cx="507.5" cy="
|
|
90
|
-
<circle cx="583.8863613997353" cy="
|
|
91
|
-
<circle cx="684.8636386002647" cy="
|
|
92
|
-
<circle cx="761.25" cy="
|
|
93
|
-
<circle cx="837.6363613997353" cy="
|
|
94
|
-
<circle cx="938.6136386002647" cy="
|
|
95
|
-
<circle cx="1015" cy="
|
|
96
|
-
<circle cx="0" cy="
|
|
97
|
-
<circle cx="76.38636139973525" cy="
|
|
98
|
-
<circle cx="177.36363860026475" cy="
|
|
99
|
-
<circle cx="253.75" cy="
|
|
100
|
-
<circle cx="330.1363613997352" cy="
|
|
101
|
-
<circle cx="431.1136386002648" cy="
|
|
102
|
-
<circle cx="507.5" cy="
|
|
103
|
-
<circle cx="583.8863613997353" cy="
|
|
104
|
-
<circle cx="684.8636386002647" cy="
|
|
105
|
-
<circle cx="761.25" cy="
|
|
106
|
-
<circle cx="837.6363613997353" cy="
|
|
107
|
-
<circle cx="938.6136386002647" cy="
|
|
108
|
-
<circle cx="1015" cy="
|
|
79
|
+
<path d="M 0 157.55924815741787 L 76.38636139973525 126.42753078910948 L 177.36363860026475 177.0395980546661 L 253.75 177.4431441958942 L 330.1363613997352 74.59235835859454 L 431.1136386002648 215.28848088812296 L 507.5 203.30057713513293 L 583.8863613997353 223.48769483349545 L 684.8636386002647 183.78731982940542 L 761.25 169.99008890849518 L 837.6363613997353 209.69626189650964 L 938.6136386002647 218.58053800016756 L 1015 216.24755147833318" class="register-mean"/>
|
|
80
|
+
<path d="M 0 324.3673892741638 L 76.38636139973525 315.18634142867353 L 177.36363860026475 381.48922090776335 L 253.75 355.9527119595714 L 330.1363613997352 343.09451827354155 L 431.1136386002648 348.5718732774849 L 507.5 385.40764164140546 L 583.8863613997353 379.2023819207247 L 684.8636386002647 276.2747802628934 L 761.25 303.7074682141104 L 837.6363613997353 327.5244762452311 L 938.6136386002647 338.0668435914174 L 1015 343.61252483845533" class="lookup-mean"/>
|
|
81
|
+
<circle cx="0" cy="157.55924815741787" r="4" class="register-dot"/>
|
|
82
|
+
<circle cx="76.38636139973525" cy="126.42753078910948" r="4" class="register-dot"/>
|
|
83
|
+
<circle cx="177.36363860026475" cy="177.0395980546661" r="4" class="register-dot"/>
|
|
84
|
+
<circle cx="253.75" cy="177.4431441958942" r="4" class="register-dot"/>
|
|
85
|
+
<circle cx="330.1363613997352" cy="74.59235835859454" r="4" class="register-dot"/>
|
|
86
|
+
<circle cx="431.1136386002648" cy="215.28848088812296" r="4" class="register-dot"/>
|
|
87
|
+
<circle cx="507.5" cy="203.30057713513293" r="4" class="register-dot"/>
|
|
88
|
+
<circle cx="583.8863613997353" cy="223.48769483349545" r="4" class="register-dot"/>
|
|
89
|
+
<circle cx="684.8636386002647" cy="183.78731982940542" r="4" class="register-dot"/>
|
|
90
|
+
<circle cx="761.25" cy="169.99008890849518" r="4" class="register-dot"/>
|
|
91
|
+
<circle cx="837.6363613997353" cy="209.69626189650964" r="4" class="register-dot"/>
|
|
92
|
+
<circle cx="938.6136386002647" cy="218.58053800016756" r="4" class="register-dot"/>
|
|
93
|
+
<circle cx="1015" cy="216.24755147833318" r="4" class="register-dot"/>
|
|
94
|
+
<circle cx="0" cy="324.3673892741638" r="4" class="lookup-dot"/>
|
|
95
|
+
<circle cx="76.38636139973525" cy="315.18634142867353" r="4" class="lookup-dot"/>
|
|
96
|
+
<circle cx="177.36363860026475" cy="381.48922090776335" r="4" class="lookup-dot"/>
|
|
97
|
+
<circle cx="253.75" cy="355.9527119595714" r="4" class="lookup-dot"/>
|
|
98
|
+
<circle cx="330.1363613997352" cy="343.09451827354155" r="4" class="lookup-dot"/>
|
|
99
|
+
<circle cx="431.1136386002648" cy="348.5718732774849" r="4" class="lookup-dot"/>
|
|
100
|
+
<circle cx="507.5" cy="385.40764164140546" r="4" class="lookup-dot"/>
|
|
101
|
+
<circle cx="583.8863613997353" cy="379.2023819207247" r="4" class="lookup-dot"/>
|
|
102
|
+
<circle cx="684.8636386002647" cy="276.2747802628934" r="4" class="lookup-dot"/>
|
|
103
|
+
<circle cx="761.25" cy="303.7074682141104" r="4" class="lookup-dot"/>
|
|
104
|
+
<circle cx="837.6363613997353" cy="327.5244762452311" r="4" class="lookup-dot"/>
|
|
105
|
+
<circle cx="938.6136386002647" cy="338.0668435914174" r="4" class="lookup-dot"/>
|
|
106
|
+
<circle cx="1015" cy="343.61252483845533" r="4" class="lookup-dot"/>
|
|
109
107
|
<!-- Legend -->
|
|
110
108
|
<g transform="translate(20, 20)">
|
|
111
109
|
<rect x="0" y="0" width="190" height="80" fill="white" stroke="#ccc" stroke-width="1"/>
|