knowledge-rag 3.6.0__tar.gz → 3.6.1__tar.gz
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.
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/PKG-INFO +75 -37
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/README.md +74 -36
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/pyproject.toml +1 -1
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/.gitignore +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/LICENSE +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/config.example.yaml +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/documents/examples/sample-document.md +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/mcp_server/__init__.py +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/mcp_server/config.py +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/mcp_server/ingestion.py +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/mcp_server/server.py +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/npm/README.md +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/presets/cybersecurity.yaml +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/presets/developer.yaml +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/presets/general.yaml +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/presets/research.yaml +0 -0
- {knowledge_rag-3.6.0 → knowledge_rag-3.6.1}/requirements.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: knowledge-rag
|
|
3
|
-
Version: 3.6.
|
|
3
|
+
Version: 3.6.1
|
|
4
4
|
Summary: Local RAG System for Claude Code — Hybrid search + Cross-encoder Reranking + 12 MCP Tools + 20 Format Parsers. Zero external servers.
|
|
5
5
|
Project-URL: Homepage, https://github.com/lyonzin/knowledge-rag
|
|
6
6
|
Project-URL: Repository, https://github.com/lyonzin/knowledge-rag
|
|
@@ -64,43 +64,33 @@ pip install knowledge-rag → restart Claude Code → search_knowledge("your que
|
|
|
64
64
|
|
|
65
65
|
**12 MCP Tools** | **Hybrid Search + Reranking** | **20 File Formats** | **Optional NVIDIA GPU** | **100% Local**
|
|
66
66
|
|
|
67
|
-
[What's New](#whats-new-in-
|
|
67
|
+
[What's New](#whats-new-in-v360) | [Supported Formats](#supported-formats) | [Installation](#installation) | [Configuration](#configuration) | [API Reference](#api-reference) | [Architecture](#architecture)
|
|
68
68
|
|
|
69
69
|
</div>
|
|
70
70
|
|
|
71
71
|
---
|
|
72
72
|
|
|
73
|
-
## What's New in v3.
|
|
73
|
+
## What's New in v3.6.0
|
|
74
74
|
|
|
75
|
-
###
|
|
75
|
+
### Multi-Language Code Parsing
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
Language-aware extraction for **C**, **C++**, **JavaScript**, **TypeScript**, and **XML** — functions, classes, structs, interfaces, imports, and namespaces are captured as searchable metadata. Total supported formats: **20**.
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
# NVIDIA GPU (requires CUDA 12.x drivers)
|
|
81
|
-
pip install knowledge-rag[gpu]
|
|
82
|
-
|
|
83
|
-
# Also install CUDA 12 runtime libraries (if not using CUDA Toolkit 12.x)
|
|
84
|
-
pip install nvidia-cublas-cu12 nvidia-cudnn-cu12 nvidia-cuda-runtime-cu12
|
|
85
|
-
```
|
|
79
|
+
### 5 Ways to Install
|
|
86
80
|
|
|
87
|
-
```
|
|
88
|
-
#
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
81
|
+
```bash
|
|
82
|
+
npx -y knowledge-rag # NPM — zero setup, auto-manages Python venv
|
|
83
|
+
pip install knowledge-rag # PyPI — classic Python install
|
|
84
|
+
curl -fsSL .../install.sh | bash # One-line installer (Linux/macOS/Windows)
|
|
85
|
+
docker pull ghcr.io/lyonzin/knowledge-rag # Docker — models pre-downloaded
|
|
86
|
+
git clone ... && pip install -r ... # From source
|
|
92
87
|
```
|
|
93
88
|
|
|
94
|
-
|
|
95
|
-
- Sets `CUDAExecutionProvider` as primary, `CPUExecutionProvider` as fallback
|
|
96
|
-
- Auto-discovers CUDA 12 DLLs from pip-installed NVIDIA packages (no manual PATH config)
|
|
97
|
-
- If GPU init fails for any reason, falls back to CPU silently with a `[WARN]` log
|
|
98
|
-
- `gpu: false` (default) forces CPU-only mode — zero CUDA overhead, clean logs
|
|
99
|
-
|
|
100
|
-
Ideal for large knowledge bases (1000+ documents) where full rebuilds take minutes on CPU. After the initial index, incremental reindexing (`force: true`) takes seconds regardless.
|
|
89
|
+
All methods produce the same MCP server. See [Installation](#installation) for full instructions.
|
|
101
90
|
|
|
102
91
|
### Recent Highlights
|
|
103
92
|
|
|
93
|
+
- **v3.6.0** — Multi-language code parsing (C/C++/JS/TS/XML), NPM wrapper, Docker image, automated release pipeline
|
|
104
94
|
- **v3.5.2** — CUDA DLL auto-discovery from pip packages, graceful GPU→CPU fallback, explicit CPU provider (no CUDA noise when `gpu: false`), BASE_DIR resolution fix for editable installs
|
|
105
95
|
- **v3.5.1** — Remove Python `<3.13` upper bound — 3.13 and 3.14 now supported
|
|
106
96
|
- **v3.5.0** — Optional GPU acceleration, supported formats table, full README rewrite
|
|
@@ -343,43 +333,88 @@ flowchart LR
|
|
|
343
333
|
- Python 3.11+
|
|
344
334
|
- Claude Code CLI
|
|
345
335
|
- ~200MB disk for model cache (auto-downloaded on first run)
|
|
346
|
-
- *Optional:* NVIDIA GPU + CUDA for
|
|
336
|
+
- *Optional:* NVIDIA GPU + CUDA for accelerated embeddings (`pip install knowledge-rag[gpu]` + `models.embedding.gpu: true` in config)
|
|
337
|
+
|
|
338
|
+
### Install Methods
|
|
339
|
+
|
|
340
|
+
Pick one — all produce the same running server.
|
|
341
|
+
|
|
342
|
+
#### Option A: NPX (fastest)
|
|
343
|
+
|
|
344
|
+
Requires Node.js 16+. Handles Python venv, pip install, and version upgrades automatically.
|
|
347
345
|
|
|
348
|
-
|
|
346
|
+
```bash
|
|
347
|
+
claude mcp add knowledge-rag -s user -- npx -y knowledge-rag
|
|
348
|
+
```
|
|
349
|
+
|
|
350
|
+
That's it. On first run, `npx` creates a venv at `~/.knowledge-rag/`, installs the PyPI package, and starts the MCP server. Subsequent runs reuse the cached venv.
|
|
349
351
|
|
|
350
|
-
|
|
352
|
+
#### Option B: One-line installer
|
|
351
353
|
|
|
352
354
|
```bash
|
|
353
|
-
# Option A: One-line installer (recommended)
|
|
354
355
|
# Linux/macOS:
|
|
355
356
|
curl -fsSL https://raw.githubusercontent.com/lyonzin/knowledge-rag/master/install.sh | bash
|
|
357
|
+
|
|
356
358
|
# Windows (PowerShell):
|
|
357
359
|
irm https://raw.githubusercontent.com/lyonzin/knowledge-rag/master/install.ps1 | iex
|
|
360
|
+
```
|
|
361
|
+
|
|
362
|
+
Then configure Claude Code:
|
|
363
|
+
|
|
364
|
+
```bash
|
|
365
|
+
claude mcp add knowledge-rag -s user -- ~/knowledge-rag/venv/bin/python -m mcp_server.server
|
|
366
|
+
```
|
|
367
|
+
|
|
368
|
+
> **Windows**: `claude mcp add knowledge-rag -s user -- %USERPROFILE%\knowledge-rag\venv\Scripts\python.exe -m mcp_server.server`
|
|
358
369
|
|
|
359
|
-
|
|
370
|
+
#### Option C: pip install
|
|
371
|
+
|
|
372
|
+
```bash
|
|
360
373
|
mkdir ~/knowledge-rag && cd ~/knowledge-rag
|
|
361
374
|
python3 -m venv venv && source venv/bin/activate
|
|
362
375
|
pip install knowledge-rag
|
|
363
376
|
knowledge-rag init # Exports config template, presets, creates documents/
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
Then configure Claude Code:
|
|
380
|
+
|
|
381
|
+
```bash
|
|
382
|
+
claude mcp add knowledge-rag -s user -- ~/knowledge-rag/venv/bin/python -m mcp_server.server
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
> **Windows users**: Use `python` instead of `python3`, `venv\Scripts\activate` instead of `source venv/bin/activate`.
|
|
386
|
+
> **Windows path**: `claude mcp add knowledge-rag -s user -- %USERPROFILE%\knowledge-rag\venv\Scripts\python.exe -m mcp_server.server`
|
|
387
|
+
|
|
388
|
+
#### Option D: Clone from source
|
|
364
389
|
|
|
365
|
-
|
|
390
|
+
```bash
|
|
366
391
|
git clone https://github.com/lyonzin/knowledge-rag.git ~/knowledge-rag
|
|
367
392
|
cd ~/knowledge-rag
|
|
368
393
|
python3 -m venv venv && source venv/bin/activate
|
|
369
394
|
pip install -r requirements.txt
|
|
370
395
|
```
|
|
371
396
|
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
**Step 2: Configure Claude Code**
|
|
397
|
+
Then configure Claude Code:
|
|
375
398
|
|
|
376
399
|
```bash
|
|
377
400
|
claude mcp add knowledge-rag -s user -- ~/knowledge-rag/venv/bin/python -m mcp_server.server
|
|
378
401
|
```
|
|
379
402
|
|
|
380
|
-
|
|
403
|
+
#### Option E: Docker
|
|
381
404
|
|
|
382
|
-
|
|
405
|
+
```bash
|
|
406
|
+
docker pull ghcr.io/lyonzin/knowledge-rag:latest
|
|
407
|
+
```
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
claude mcp add knowledge-rag -s user -- \
|
|
411
|
+
docker run -i --rm \
|
|
412
|
+
-v ~/knowledge-rag/documents:/app/documents \
|
|
413
|
+
-v ~/knowledge-rag/data:/app/data \
|
|
414
|
+
ghcr.io/lyonzin/knowledge-rag:latest
|
|
415
|
+
```
|
|
416
|
+
|
|
417
|
+
Models are pre-downloaded in the image — no first-run delay.
|
|
383
418
|
|
|
384
419
|
<details>
|
|
385
420
|
<summary>Alternative: manual JSON config</summary>
|
|
@@ -412,10 +447,9 @@ Add to `~/.claude.json`:
|
|
|
412
447
|
> Replace `YOUR_USER` with your username, or use the full path from `echo $HOME`.
|
|
413
448
|
</details>
|
|
414
449
|
|
|
415
|
-
|
|
450
|
+
### Verify
|
|
416
451
|
|
|
417
452
|
```bash
|
|
418
|
-
# Verify the server is connected
|
|
419
453
|
claude mcp list
|
|
420
454
|
```
|
|
421
455
|
|
|
@@ -1032,6 +1066,10 @@ With ~200 documents, expect ~300-500MB RAM. The embedding model (~50MB) and rera
|
|
|
1032
1066
|
|
|
1033
1067
|
## Changelog
|
|
1034
1068
|
|
|
1069
|
+
### v3.6.1 (2026-04-23)
|
|
1070
|
+
|
|
1071
|
+
- **DOCS**: Reorganize Installation section — add NPX and Docker install methods, update What's New to v3.6.0
|
|
1072
|
+
|
|
1035
1073
|
### v3.6.0 (2026-04-23)
|
|
1036
1074
|
|
|
1037
1075
|
- **NEW**: Multi-language code parsing — C (`.c`), C++ (`.cpp`/`.h`), JavaScript (`.js`/`.jsx`), TypeScript (`.ts`/`.tsx`) with per-language function/class/import extraction
|
|
@@ -26,43 +26,33 @@ pip install knowledge-rag → restart Claude Code → search_knowledge("your que
|
|
|
26
26
|
|
|
27
27
|
**12 MCP Tools** | **Hybrid Search + Reranking** | **20 File Formats** | **Optional NVIDIA GPU** | **100% Local**
|
|
28
28
|
|
|
29
|
-
[What's New](#whats-new-in-
|
|
29
|
+
[What's New](#whats-new-in-v360) | [Supported Formats](#supported-formats) | [Installation](#installation) | [Configuration](#configuration) | [API Reference](#api-reference) | [Architecture](#architecture)
|
|
30
30
|
|
|
31
31
|
</div>
|
|
32
32
|
|
|
33
33
|
---
|
|
34
34
|
|
|
35
|
-
## What's New in v3.
|
|
35
|
+
## What's New in v3.6.0
|
|
36
36
|
|
|
37
|
-
###
|
|
37
|
+
### Multi-Language Code Parsing
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
Language-aware extraction for **C**, **C++**, **JavaScript**, **TypeScript**, and **XML** — functions, classes, structs, interfaces, imports, and namespaces are captured as searchable metadata. Total supported formats: **20**.
|
|
40
40
|
|
|
41
|
-
|
|
42
|
-
# NVIDIA GPU (requires CUDA 12.x drivers)
|
|
43
|
-
pip install knowledge-rag[gpu]
|
|
44
|
-
|
|
45
|
-
# Also install CUDA 12 runtime libraries (if not using CUDA Toolkit 12.x)
|
|
46
|
-
pip install nvidia-cublas-cu12 nvidia-cudnn-cu12 nvidia-cuda-runtime-cu12
|
|
47
|
-
```
|
|
41
|
+
### 5 Ways to Install
|
|
48
42
|
|
|
49
|
-
```
|
|
50
|
-
#
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
43
|
+
```bash
|
|
44
|
+
npx -y knowledge-rag # NPM — zero setup, auto-manages Python venv
|
|
45
|
+
pip install knowledge-rag # PyPI — classic Python install
|
|
46
|
+
curl -fsSL .../install.sh | bash # One-line installer (Linux/macOS/Windows)
|
|
47
|
+
docker pull ghcr.io/lyonzin/knowledge-rag # Docker — models pre-downloaded
|
|
48
|
+
git clone ... && pip install -r ... # From source
|
|
54
49
|
```
|
|
55
50
|
|
|
56
|
-
|
|
57
|
-
- Sets `CUDAExecutionProvider` as primary, `CPUExecutionProvider` as fallback
|
|
58
|
-
- Auto-discovers CUDA 12 DLLs from pip-installed NVIDIA packages (no manual PATH config)
|
|
59
|
-
- If GPU init fails for any reason, falls back to CPU silently with a `[WARN]` log
|
|
60
|
-
- `gpu: false` (default) forces CPU-only mode — zero CUDA overhead, clean logs
|
|
61
|
-
|
|
62
|
-
Ideal for large knowledge bases (1000+ documents) where full rebuilds take minutes on CPU. After the initial index, incremental reindexing (`force: true`) takes seconds regardless.
|
|
51
|
+
All methods produce the same MCP server. See [Installation](#installation) for full instructions.
|
|
63
52
|
|
|
64
53
|
### Recent Highlights
|
|
65
54
|
|
|
55
|
+
- **v3.6.0** — Multi-language code parsing (C/C++/JS/TS/XML), NPM wrapper, Docker image, automated release pipeline
|
|
66
56
|
- **v3.5.2** — CUDA DLL auto-discovery from pip packages, graceful GPU→CPU fallback, explicit CPU provider (no CUDA noise when `gpu: false`), BASE_DIR resolution fix for editable installs
|
|
67
57
|
- **v3.5.1** — Remove Python `<3.13` upper bound — 3.13 and 3.14 now supported
|
|
68
58
|
- **v3.5.0** — Optional GPU acceleration, supported formats table, full README rewrite
|
|
@@ -305,43 +295,88 @@ flowchart LR
|
|
|
305
295
|
- Python 3.11+
|
|
306
296
|
- Claude Code CLI
|
|
307
297
|
- ~200MB disk for model cache (auto-downloaded on first run)
|
|
308
|
-
- *Optional:* NVIDIA GPU + CUDA for
|
|
298
|
+
- *Optional:* NVIDIA GPU + CUDA for accelerated embeddings (`pip install knowledge-rag[gpu]` + `models.embedding.gpu: true` in config)
|
|
299
|
+
|
|
300
|
+
### Install Methods
|
|
301
|
+
|
|
302
|
+
Pick one — all produce the same running server.
|
|
303
|
+
|
|
304
|
+
#### Option A: NPX (fastest)
|
|
305
|
+
|
|
306
|
+
Requires Node.js 16+. Handles Python venv, pip install, and version upgrades automatically.
|
|
309
307
|
|
|
310
|
-
|
|
308
|
+
```bash
|
|
309
|
+
claude mcp add knowledge-rag -s user -- npx -y knowledge-rag
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
That's it. On first run, `npx` creates a venv at `~/.knowledge-rag/`, installs the PyPI package, and starts the MCP server. Subsequent runs reuse the cached venv.
|
|
311
313
|
|
|
312
|
-
|
|
314
|
+
#### Option B: One-line installer
|
|
313
315
|
|
|
314
316
|
```bash
|
|
315
|
-
# Option A: One-line installer (recommended)
|
|
316
317
|
# Linux/macOS:
|
|
317
318
|
curl -fsSL https://raw.githubusercontent.com/lyonzin/knowledge-rag/master/install.sh | bash
|
|
319
|
+
|
|
318
320
|
# Windows (PowerShell):
|
|
319
321
|
irm https://raw.githubusercontent.com/lyonzin/knowledge-rag/master/install.ps1 | iex
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
Then configure Claude Code:
|
|
325
|
+
|
|
326
|
+
```bash
|
|
327
|
+
claude mcp add knowledge-rag -s user -- ~/knowledge-rag/venv/bin/python -m mcp_server.server
|
|
328
|
+
```
|
|
329
|
+
|
|
330
|
+
> **Windows**: `claude mcp add knowledge-rag -s user -- %USERPROFILE%\knowledge-rag\venv\Scripts\python.exe -m mcp_server.server`
|
|
320
331
|
|
|
321
|
-
|
|
332
|
+
#### Option C: pip install
|
|
333
|
+
|
|
334
|
+
```bash
|
|
322
335
|
mkdir ~/knowledge-rag && cd ~/knowledge-rag
|
|
323
336
|
python3 -m venv venv && source venv/bin/activate
|
|
324
337
|
pip install knowledge-rag
|
|
325
338
|
knowledge-rag init # Exports config template, presets, creates documents/
|
|
339
|
+
```
|
|
340
|
+
|
|
341
|
+
Then configure Claude Code:
|
|
342
|
+
|
|
343
|
+
```bash
|
|
344
|
+
claude mcp add knowledge-rag -s user -- ~/knowledge-rag/venv/bin/python -m mcp_server.server
|
|
345
|
+
```
|
|
346
|
+
|
|
347
|
+
> **Windows users**: Use `python` instead of `python3`, `venv\Scripts\activate` instead of `source venv/bin/activate`.
|
|
348
|
+
> **Windows path**: `claude mcp add knowledge-rag -s user -- %USERPROFILE%\knowledge-rag\venv\Scripts\python.exe -m mcp_server.server`
|
|
349
|
+
|
|
350
|
+
#### Option D: Clone from source
|
|
326
351
|
|
|
327
|
-
|
|
352
|
+
```bash
|
|
328
353
|
git clone https://github.com/lyonzin/knowledge-rag.git ~/knowledge-rag
|
|
329
354
|
cd ~/knowledge-rag
|
|
330
355
|
python3 -m venv venv && source venv/bin/activate
|
|
331
356
|
pip install -r requirements.txt
|
|
332
357
|
```
|
|
333
358
|
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
**Step 2: Configure Claude Code**
|
|
359
|
+
Then configure Claude Code:
|
|
337
360
|
|
|
338
361
|
```bash
|
|
339
362
|
claude mcp add knowledge-rag -s user -- ~/knowledge-rag/venv/bin/python -m mcp_server.server
|
|
340
363
|
```
|
|
341
364
|
|
|
342
|
-
|
|
365
|
+
#### Option E: Docker
|
|
343
366
|
|
|
344
|
-
|
|
367
|
+
```bash
|
|
368
|
+
docker pull ghcr.io/lyonzin/knowledge-rag:latest
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
claude mcp add knowledge-rag -s user -- \
|
|
373
|
+
docker run -i --rm \
|
|
374
|
+
-v ~/knowledge-rag/documents:/app/documents \
|
|
375
|
+
-v ~/knowledge-rag/data:/app/data \
|
|
376
|
+
ghcr.io/lyonzin/knowledge-rag:latest
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
Models are pre-downloaded in the image — no first-run delay.
|
|
345
380
|
|
|
346
381
|
<details>
|
|
347
382
|
<summary>Alternative: manual JSON config</summary>
|
|
@@ -374,10 +409,9 @@ Add to `~/.claude.json`:
|
|
|
374
409
|
> Replace `YOUR_USER` with your username, or use the full path from `echo $HOME`.
|
|
375
410
|
</details>
|
|
376
411
|
|
|
377
|
-
|
|
412
|
+
### Verify
|
|
378
413
|
|
|
379
414
|
```bash
|
|
380
|
-
# Verify the server is connected
|
|
381
415
|
claude mcp list
|
|
382
416
|
```
|
|
383
417
|
|
|
@@ -994,6 +1028,10 @@ With ~200 documents, expect ~300-500MB RAM. The embedding model (~50MB) and rera
|
|
|
994
1028
|
|
|
995
1029
|
## Changelog
|
|
996
1030
|
|
|
1031
|
+
### v3.6.1 (2026-04-23)
|
|
1032
|
+
|
|
1033
|
+
- **DOCS**: Reorganize Installation section — add NPX and Docker install methods, update What's New to v3.6.0
|
|
1034
|
+
|
|
997
1035
|
### v3.6.0 (2026-04-23)
|
|
998
1036
|
|
|
999
1037
|
- **NEW**: Multi-language code parsing — C (`.c`), C++ (`.cpp`/`.h`), JavaScript (`.js`/`.jsx`), TypeScript (`.ts`/`.tsx`) with per-language function/class/import extraction
|
|
@@ -4,7 +4,7 @@ build-backend = "hatchling.build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "knowledge-rag"
|
|
7
|
-
version = "3.6.
|
|
7
|
+
version = "3.6.1"
|
|
8
8
|
description = "Local RAG System for Claude Code — Hybrid search + Cross-encoder Reranking + 12 MCP Tools + 20 Format Parsers. Zero external servers."
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
license = {text = "MIT"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|