shadecrypt 0.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.
@@ -0,0 +1,250 @@
1
+ Metadata-Version: 2.4
2
+ Name: shadecrypt
3
+ Version: 0.1
4
+ Summary: A class oriented lightweight database with a cli wrapper for any device: store, update, copy, and remove structured data with a single command. Perfect for embedded devices, mobiles, devtools, and quick local services.
5
+ Author: Shade
6
+ Author-email: adesolasherifdeen3@gmail.com
7
+ License: GPL-3.0
8
+ Project-URL: GitHub, https://github.com/harkerbyte
9
+ Project-URL: Facebook, https://facebook.com/harkerbyte
10
+ Project-URL: Whatsapp, https://whatsapp.com/channel/0029Vb5f98Z90x2p6S1rhT0S
11
+ Project-URL: Youtube, https://youtube.com/@harkerbyte
12
+ Project-URL: Instagram, https://instagram.com/harkerbyte
13
+ Classifier: Programming Language :: Python :: 3
14
+ Classifier: License :: OSI Approved :: MIT License
15
+ Classifier: Environment :: Console
16
+ Classifier: Intended Audience :: Developers
17
+ Classifier: Topic :: Database :: Database Engines/Servers
18
+ Requires-Python: >=3.8
19
+ Description-Content-Type: text/markdown
20
+ Dynamic: author
21
+ Dynamic: author-email
22
+ Dynamic: classifier
23
+ Dynamic: description
24
+ Dynamic: description-content-type
25
+ Dynamic: license
26
+ Dynamic: project-url
27
+ Dynamic: requires-python
28
+ Dynamic: summary
29
+
30
+ # Shadecrypt
31
+
32
+ ![PyPI - Version](https://img.shields.io/pypi/v/shadecrypt?color=blue&label=PyPI)
33
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/shadecrypt?color=brightgreen)
34
+ ![License](https://img.shields.io/github/license/harkerbyte/shadecrypt?color=yellow)
35
+ ![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows%20%7C%20android-lightgrey)
36
+
37
+
38
+
39
+ ๐Ÿš€ **shadeDB**, also know as **shadecrypt**, is a lightweight, multipurpose **CLI + Python database server** โ€” small enough to run anywhere, yet powerful enough to manage structured data with speed and simplicity.
40
+
41
+ Unlike traditional file-based CLIs, Shadecrypt works more like Redis:
42
+
43
+ - You **initialize once** โ†’ a background server process holds the live database in memory.
44
+ - All future CLI commands (`put`, `get`, `update`, etc.) talk to that server via a local socket.
45
+ - The server **automatically persists** data to a `.scdb` file, with optional write and backup controls.
46
+
47
+ ---
48
+
49
+ ## โœจ Features
50
+
51
+ - **Class-oriented design** โ€” core database logic is in the `shadeDB` class.
52
+ - **Persistent workflow** โ€” one live server handles all operations.
53
+ - **Background persistence** โ€” in-memory with disk persistence.
54
+ - **Portable** โ€” runs on Linux, macOS, Windows, Android (via Termux).
55
+ - **Multipurpose CLI** โ€” simple commands: `init`, `start`, `use`, `pull`, `get`, `update`, `remove`, `ls`, `stop`.
56
+ - **Config-aware** โ€” automatically tracks the โ€œcurrentโ€ DB in `~/.shadecrypt/config.scdb`.
57
+
58
+ ---
59
+
60
+ ## ๐Ÿ”ง Installation
61
+
62
+ ```bash
63
+ pip install shadecrypt
64
+ ```
65
+
66
+ After install, the `shadecrypt` command is available globally. A shorter keyword for shadecrypt - **scdb**
67
+
68
+ ---
69
+
70
+ ## โšก Quickstart (CLI)
71
+
72
+ ### 1. Initialize a database
73
+ Creates `./mydb.scdb`, starts the server, and sets it as default:
74
+ ```bash
75
+ shadecrypt init ./mydb.scdb backup
76
+ ```
77
+ โš ๏ธ Only provide the "backup" argument if you intend for the server to register newer backups as you make new changes.
78
+
79
+ ---
80
+
81
+ ### 2. Insert data
82
+ ```bash
83
+ shadecrypt update alice.age 17 && scdb update alice.gender female
84
+ ```
85
+ ---
86
+
87
+ ### 3. Fetch data
88
+ ```bash
89
+ shadecrypt get alice
90
+ # {"nickname": "Shade", "status": "active"}
91
+ ```
92
+ ---
93
+
94
+ ### 4. Nested access
95
+ ```bash
96
+ shadecrypt pull alice.nickname
97
+ # "Shade"
98
+ ```
99
+
100
+ ---
101
+ Making single value updates, it is compulsory to surround with double quotes.
102
+ ### 5. Update
103
+ ```bash
104
+ shadecrypt update alice "my name is alice"
105
+ ```
106
+
107
+ ---
108
+
109
+ ### 6. Remove
110
+ ```bash
111
+ shadecrypt remove alice
112
+ # deletes {"nickname":"shade","status":"active"}
113
+ ```
114
+ ### Remove nested
115
+ ```bash
116
+ shadecrypt remove alice.nickname
117
+ # deletes {"nickname":"shade"}
118
+ ````
119
+ ---
120
+
121
+ ### 8. Check for the current database
122
+ ```bash
123
+ shadecrypt ls
124
+ # ./mysql.scsb
125
+ ```
126
+
127
+ ---
128
+
129
+ ### 9. Switch database
130
+ ```bash
131
+ shadecrypt use ./backup.scdb backup
132
+ # Only provide the backup argument, if it need arises.
133
+ ```
134
+
135
+ ---
136
+
137
+ ### 10. Stop server
138
+ ```bash
139
+ shadecrypt stop
140
+ ```
141
+
142
+ ---
143
+
144
+ ## ๐Ÿ“š Python API
145
+
146
+ Shadecrypt can also be embedded directly into Python apps using the `ShadeDB` class.
147
+
148
+ ### ๐Ÿ”ง Initialize
149
+ ```python
150
+ from shadecrypt.core import ShadeDB
151
+
152
+ db = ShadeDB(
153
+ file="./data.scdb",
154
+ write=True,
155
+ id=True,
156
+ backup=False
157
+ )
158
+ ```
159
+
160
+ **Parameters**
161
+ - `file (str)` โ†’ Path to `.scdb` file
162
+ - `write (bool)` โ†’ Persist changes to disk (default: `True`)
163
+ - `id (bool)` โ†’ Assign unique ID per entry (default: `True`)
164
+ - `backup (bool)` โ†’ Keep backup copy (default: `False`)
165
+
166
+ ---
167
+
168
+ ### ๐Ÿ› ๏ธ Key Methods
169
+
170
+ ```python
171
+ db.update(("alice", {"nickname": "Shade", "status": "active"})) # Insert/update
172
+ db.get("alice", multiple=True/False) # Fetch record
173
+ db.get("alice.nickname") # Fetch nested value
174
+ db.get_context("alice") # Get full dict
175
+ db.get_by_id(1) # Fetch by ID
176
+ db.get_id("alice",multiple=True/False) # Get ID of key
177
+ db.items() # List all entries
178
+ db.import_dict({...},overwrite=True/False) # Import dictionary, can also overwrite existing records
179
+ db.export_dict() # Export to dictionary
180
+ db.remove("alice") # Delete entry
181
+ db.clear() # Clear all
182
+ db.status() # DB status
183
+ db.__performance__() # Performance stats
184
+ ```
185
+
186
+ ---
187
+
188
+ ## โšก Example Workflow
189
+
190
+ ```python
191
+ from shadecrypt.core import ShadeDB
192
+
193
+ db = ShadeDB("./appdata.scdb", write=True)
194
+
195
+ # Insert
196
+ db.update(("alice", {"nickname": "Shade", "status": "active"}))
197
+
198
+ # Nested access
199
+ print(db.get("alice.nickname")) # Shade
200
+
201
+ # Full context
202
+ print(db.get_context("alice")) # {'nickname': 'Shade', 'status': 'active'}
203
+
204
+ # Export
205
+ print(db.export_dict())
206
+ ```
207
+
208
+ ---
209
+
210
+ ## ๐Ÿ“‘ Command & Method Reference
211
+
212
+ | Command / Method | Description |
213
+ |---------------------------|-------------|
214
+ | `init <file> <backup>` | Initialize DB + server |
215
+ | `use <file> <backup>` | Switch database |
216
+ | `pull <key>.<value>` | Fetch nested record |
217
+ | `get <key>` <multiple> | Fetch data |
218
+ | `update <key>.<value>` | Update existing record |
219
+ | `remove <key>` | Delete entry ( Supports dot notation)|
220
+ | `ls` | Current database |
221
+ | `stop` | Stop server |
222
+ | `update(item)` | Insert/update via Python |
223
+ | `get(key,multiple=True/False)` | Fetch record |
224
+ | `get_context(key)` | Full dictionary view |
225
+ | `get_by_id(id)` | Fetch by unique ID |
226
+ | `get_id(key,multiple=True/False)` | Return ID of key |
227
+ | `items()` | List all entries |
228
+ | `import_dict(dict,overwrite=True/False)` | Import bulk dict |
229
+ | `export_dict()` | Export full dict |
230
+ | `remove(key)` | Delete by key/ID |
231
+ | `clear()` | Wipe database |
232
+ | `status()` | DB status info |
233
+ | `__performance__()` | Compile time & stats |
234
+
235
+
236
+
237
+ ### ๐Ÿ”ฎ Few hints on what's to come in future updates
238
+ - **Remote mode** โ†’ optional TCP listener so Shadecrypt can be queried from another device (like Redis-lite networking).
239
+ - **Replication/Sync** โ†’ lightweight push/pull sync between devices.
240
+ - **Faster query returns** โ†’ implement a new algorithm to speed up query processing.
241
+ - **Custom encryption algorithm** โ†’ device based encryption algorithm.
242
+ - **Plugin system** โ†’ user-defined operations via Python modules.
243
+ - **Connect with me** โ†’ using the links below for stunning updates.
244
+
245
+ ## ๐ŸŒ Connect
246
+
247
+ - **GitHub:** [harkerbyte](https://github.com/harkerbyte)
248
+ - **FB:** [facebook.com/harkerbyte](https://facebook.com/harkerbyte)
249
+ - **Instagram:** [instagram.com/harkerbyte](https://instagram.com/harkerbyte)
250
+ - **Community (WhatsApp):** [Join Here](https://chat.whatsapp.com/GuppqwKhp4H7OCaLWcOz40?mode=ac_t)
@@ -0,0 +1,221 @@
1
+ # Shadecrypt
2
+
3
+ ![PyPI - Version](https://img.shields.io/pypi/v/shadecrypt?color=blue&label=PyPI)
4
+ ![PyPI - Downloads](https://img.shields.io/pypi/dm/shadecrypt?color=brightgreen)
5
+ ![License](https://img.shields.io/github/license/harkerbyte/shadecrypt?color=yellow)
6
+ ![Platform](https://img.shields.io/badge/platform-linux%20%7C%20macos%20%7C%20windows%20%7C%20android-lightgrey)
7
+
8
+
9
+
10
+ ๐Ÿš€ **shadeDB**, also know as **shadecrypt**, is a lightweight, multipurpose **CLI + Python database server** โ€” small enough to run anywhere, yet powerful enough to manage structured data with speed and simplicity.
11
+
12
+ Unlike traditional file-based CLIs, Shadecrypt works more like Redis:
13
+
14
+ - You **initialize once** โ†’ a background server process holds the live database in memory.
15
+ - All future CLI commands (`put`, `get`, `update`, etc.) talk to that server via a local socket.
16
+ - The server **automatically persists** data to a `.scdb` file, with optional write and backup controls.
17
+
18
+ ---
19
+
20
+ ## โœจ Features
21
+
22
+ - **Class-oriented design** โ€” core database logic is in the `shadeDB` class.
23
+ - **Persistent workflow** โ€” one live server handles all operations.
24
+ - **Background persistence** โ€” in-memory with disk persistence.
25
+ - **Portable** โ€” runs on Linux, macOS, Windows, Android (via Termux).
26
+ - **Multipurpose CLI** โ€” simple commands: `init`, `start`, `use`, `pull`, `get`, `update`, `remove`, `ls`, `stop`.
27
+ - **Config-aware** โ€” automatically tracks the โ€œcurrentโ€ DB in `~/.shadecrypt/config.scdb`.
28
+
29
+ ---
30
+
31
+ ## ๐Ÿ”ง Installation
32
+
33
+ ```bash
34
+ pip install shadecrypt
35
+ ```
36
+
37
+ After install, the `shadecrypt` command is available globally. A shorter keyword for shadecrypt - **scdb**
38
+
39
+ ---
40
+
41
+ ## โšก Quickstart (CLI)
42
+
43
+ ### 1. Initialize a database
44
+ Creates `./mydb.scdb`, starts the server, and sets it as default:
45
+ ```bash
46
+ shadecrypt init ./mydb.scdb backup
47
+ ```
48
+ โš ๏ธ Only provide the "backup" argument if you intend for the server to register newer backups as you make new changes.
49
+
50
+ ---
51
+
52
+ ### 2. Insert data
53
+ ```bash
54
+ shadecrypt update alice.age 17 && scdb update alice.gender female
55
+ ```
56
+ ---
57
+
58
+ ### 3. Fetch data
59
+ ```bash
60
+ shadecrypt get alice
61
+ # {"nickname": "Shade", "status": "active"}
62
+ ```
63
+ ---
64
+
65
+ ### 4. Nested access
66
+ ```bash
67
+ shadecrypt pull alice.nickname
68
+ # "Shade"
69
+ ```
70
+
71
+ ---
72
+ Making single value updates, it is compulsory to surround with double quotes.
73
+ ### 5. Update
74
+ ```bash
75
+ shadecrypt update alice "my name is alice"
76
+ ```
77
+
78
+ ---
79
+
80
+ ### 6. Remove
81
+ ```bash
82
+ shadecrypt remove alice
83
+ # deletes {"nickname":"shade","status":"active"}
84
+ ```
85
+ ### Remove nested
86
+ ```bash
87
+ shadecrypt remove alice.nickname
88
+ # deletes {"nickname":"shade"}
89
+ ````
90
+ ---
91
+
92
+ ### 8. Check for the current database
93
+ ```bash
94
+ shadecrypt ls
95
+ # ./mysql.scsb
96
+ ```
97
+
98
+ ---
99
+
100
+ ### 9. Switch database
101
+ ```bash
102
+ shadecrypt use ./backup.scdb backup
103
+ # Only provide the backup argument, if it need arises.
104
+ ```
105
+
106
+ ---
107
+
108
+ ### 10. Stop server
109
+ ```bash
110
+ shadecrypt stop
111
+ ```
112
+
113
+ ---
114
+
115
+ ## ๐Ÿ“š Python API
116
+
117
+ Shadecrypt can also be embedded directly into Python apps using the `ShadeDB` class.
118
+
119
+ ### ๐Ÿ”ง Initialize
120
+ ```python
121
+ from shadecrypt.core import ShadeDB
122
+
123
+ db = ShadeDB(
124
+ file="./data.scdb",
125
+ write=True,
126
+ id=True,
127
+ backup=False
128
+ )
129
+ ```
130
+
131
+ **Parameters**
132
+ - `file (str)` โ†’ Path to `.scdb` file
133
+ - `write (bool)` โ†’ Persist changes to disk (default: `True`)
134
+ - `id (bool)` โ†’ Assign unique ID per entry (default: `True`)
135
+ - `backup (bool)` โ†’ Keep backup copy (default: `False`)
136
+
137
+ ---
138
+
139
+ ### ๐Ÿ› ๏ธ Key Methods
140
+
141
+ ```python
142
+ db.update(("alice", {"nickname": "Shade", "status": "active"})) # Insert/update
143
+ db.get("alice", multiple=True/False) # Fetch record
144
+ db.get("alice.nickname") # Fetch nested value
145
+ db.get_context("alice") # Get full dict
146
+ db.get_by_id(1) # Fetch by ID
147
+ db.get_id("alice",multiple=True/False) # Get ID of key
148
+ db.items() # List all entries
149
+ db.import_dict({...},overwrite=True/False) # Import dictionary, can also overwrite existing records
150
+ db.export_dict() # Export to dictionary
151
+ db.remove("alice") # Delete entry
152
+ db.clear() # Clear all
153
+ db.status() # DB status
154
+ db.__performance__() # Performance stats
155
+ ```
156
+
157
+ ---
158
+
159
+ ## โšก Example Workflow
160
+
161
+ ```python
162
+ from shadecrypt.core import ShadeDB
163
+
164
+ db = ShadeDB("./appdata.scdb", write=True)
165
+
166
+ # Insert
167
+ db.update(("alice", {"nickname": "Shade", "status": "active"}))
168
+
169
+ # Nested access
170
+ print(db.get("alice.nickname")) # Shade
171
+
172
+ # Full context
173
+ print(db.get_context("alice")) # {'nickname': 'Shade', 'status': 'active'}
174
+
175
+ # Export
176
+ print(db.export_dict())
177
+ ```
178
+
179
+ ---
180
+
181
+ ## ๐Ÿ“‘ Command & Method Reference
182
+
183
+ | Command / Method | Description |
184
+ |---------------------------|-------------|
185
+ | `init <file> <backup>` | Initialize DB + server |
186
+ | `use <file> <backup>` | Switch database |
187
+ | `pull <key>.<value>` | Fetch nested record |
188
+ | `get <key>` <multiple> | Fetch data |
189
+ | `update <key>.<value>` | Update existing record |
190
+ | `remove <key>` | Delete entry ( Supports dot notation)|
191
+ | `ls` | Current database |
192
+ | `stop` | Stop server |
193
+ | `update(item)` | Insert/update via Python |
194
+ | `get(key,multiple=True/False)` | Fetch record |
195
+ | `get_context(key)` | Full dictionary view |
196
+ | `get_by_id(id)` | Fetch by unique ID |
197
+ | `get_id(key,multiple=True/False)` | Return ID of key |
198
+ | `items()` | List all entries |
199
+ | `import_dict(dict,overwrite=True/False)` | Import bulk dict |
200
+ | `export_dict()` | Export full dict |
201
+ | `remove(key)` | Delete by key/ID |
202
+ | `clear()` | Wipe database |
203
+ | `status()` | DB status info |
204
+ | `__performance__()` | Compile time & stats |
205
+
206
+
207
+
208
+ ### ๐Ÿ”ฎ Few hints on what's to come in future updates
209
+ - **Remote mode** โ†’ optional TCP listener so Shadecrypt can be queried from another device (like Redis-lite networking).
210
+ - **Replication/Sync** โ†’ lightweight push/pull sync between devices.
211
+ - **Faster query returns** โ†’ implement a new algorithm to speed up query processing.
212
+ - **Custom encryption algorithm** โ†’ device based encryption algorithm.
213
+ - **Plugin system** โ†’ user-defined operations via Python modules.
214
+ - **Connect with me** โ†’ using the links below for stunning updates.
215
+
216
+ ## ๐ŸŒ Connect
217
+
218
+ - **GitHub:** [harkerbyte](https://github.com/harkerbyte)
219
+ - **FB:** [facebook.com/harkerbyte](https://facebook.com/harkerbyte)
220
+ - **Instagram:** [instagram.com/harkerbyte](https://instagram.com/harkerbyte)
221
+ - **Community (WhatsApp):** [Join Here](https://chat.whatsapp.com/GuppqwKhp4H7OCaLWcOz40?mode=ac_t)
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,34 @@
1
+ from setuptools import setup, find_packages
2
+
3
+ setup(
4
+ name="shadecrypt",
5
+ version="0.1",
6
+ description="A class oriented lightweight database with a cli wrapper for any device: store, update, copy, and remove structured data with a single command. Perfect for embedded devices, mobiles, devtools, and quick local services.",
7
+ author="Shade",
8
+ author_email="adesolasherifdeen3@gmail.com",
9
+ entry_points={
10
+ "console_scripts": [
11
+ "shadecrypt=shadecrypt.cli:main",
12
+ "scdb=shadecrypt.cli:main"
13
+ ]
14
+ },
15
+ include_package_data=True,
16
+ python_requires='>=3.8',
17
+ license="GPL-3.0",
18
+ classifiers=[
19
+ "Programming Language :: Python :: 3",
20
+ "License :: OSI Approved :: MIT License",
21
+ "Environment :: Console",
22
+ "Intended Audience :: Developers",
23
+ "Topic :: Database :: Database Engines/Servers",
24
+ ],
25
+ project_urls={
26
+ "GitHub": "https://github.com/harkerbyte",
27
+ "Facebook": "https://facebook.com/harkerbyte",
28
+ "Whatsapp" : "https://whatsapp.com/channel/0029Vb5f98Z90x2p6S1rhT0S",
29
+ "Youtube" : "https://youtube.com/@harkerbyte",
30
+ "Instagram": "https://instagram.com/harkerbyte"
31
+ },
32
+ long_description=open("README.md", encoding="utf-8").read(),
33
+ long_description_content_type="text/markdown",
34
+ )
@@ -0,0 +1,16 @@
1
+ import os
2
+ from shadecrypt.core import shadeDB
3
+
4
+ try:
5
+ os.mkdir('~/.shadecrypt/',0o744)
6
+ except Exception as error:
7
+ pass
8
+ CONFIG_PATH = '~/.shadecrypt/config.scdb'
9
+ if not os.path.exists(CONFIG_PATH):
10
+ with open(CONFIG_PATH,"w"):
11
+ pass
12
+ os.chmod(CONFIG_PATH,0o644)
13
+ instance = shadeDB(CONFIG_PATH,write=True)
14
+ instance = shadeDB(CONFIG_PATH,write=True)
15
+
16
+