You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
-[Updates on Mastodon](https://mastodon.social/tags/CodableDatastore)
20
21
21
22
## Installation
22
23
@@ -43,7 +44,49 @@ targets: [
43
44
44
45
`CodableDatastore` is a collection of types that make it easy to interface with large data stores of independent types without loading the entire data store in memory.
45
46
46
-
### Goals
47
+
> **Warning**
48
+
> DO NOT USE THIS IN PRODOCUTION PROJECTS. As this project is currently still in its alpha phase, I cannot stress how important it is to not ship anything that relies on this code, or you will experience data loss. There is a chance the underlying model may continue to change day to day, or I will not be able to ever finish it.
49
+
> Until then, please enjoy the code as a spectator or play around with it in toy projects to submit feedback!
50
+
51
+
### Road to 0.1 Betas
52
+
53
+
As this project matures towards its first beta, a number of features still need to be fleshed out:
54
+
- Writing to any part of the datastore
55
+
- Loading entries
56
+
- Deleting entries
57
+
- Keeping track of the number of entries
58
+
- Update snapshots to have multiple manifests
59
+
- Fleshing out historical edit metadata
60
+
- Migrating entries
61
+
- Ranged reads
62
+
- Observations
63
+
64
+
The above list will be kept up to date during development and will likely see additions during that process.
65
+
66
+
### Road to 1.0
67
+
68
+
Once an initial beta is released, the project will start focussing on the functionality and work listed below:
69
+
- Cleaning up old resources in memory
70
+
- Cleaning up old resources on disk
71
+
- Reversed ranged reads
72
+
- Controls for the edit history
73
+
- Helper types to use with SwiftUI/Observability/Combine that can make data available on the main actor and filter and stay up to date
74
+
- Comprehensive test coverage
75
+
- Comprehensive usage guides
76
+
- An example app
77
+
- A memory persistence useful for testing apps with
78
+
- A pre-configured data store tuned to storing pure Data, useful for types like Images
79
+
80
+
### Beyond 1.0
81
+
82
+
Once the 1.0 release has been made, it'll be time to start working on additional features:
83
+
- Snapshots and Backups
84
+
- A companion app to open, inspect, and modify datastores
85
+
- Other kinds of persistences, such as a distributed one for multi-server deployments
86
+
- Compression and encryption on a per-datastore basis
87
+
- External writes to a shared inbox
88
+
89
+
### Original Goals
47
90
48
91
<detailsopen>
49
92
<summary><strong>Use Codable and Identifiable to as the only requirements for types saved to the data store.</strong></summary>
@@ -185,3 +228,7 @@ If you are designing a scalable system that runs multiple processes, consider se
185
228
Contribution is welcome! Please take a look at the issues already available, or start a new discussion to propose a new feature. Although guarantees can't be made regarding feature requests, PRs that fit within the goals of the project and that have been discussed beforehand are more than welcome!
186
229
187
230
Please make sure that all submissions have clean commit histories, are well documented, and thoroughly tested. **Please rebase your PR** before submission rather than merge in `main`. Linear histories are required, so merge commits in PRs will not be accepted.
231
+
232
+
## Support
233
+
234
+
To support this project, consider following [@dimitribouniol](https://mastodon.social/@dimitribouniol) on Mastodon, listening to Spencer and Dimitri on [Code Completion](https://mastodon.social/@codecompletion), or downloading Dimitri's wife Linh's app, [Not Phở](https://notpho.app/).
0 commit comments