-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdata.js
More file actions
78 lines (77 loc) · 3.18 KB
/
Copy pathdata.js
File metadata and controls
78 lines (77 loc) · 3.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
// @ts-check
import { LandscapeSchema } from '@localfirstfm/landscape-schema'
export const data = LandscapeSchema.make({
Version: 1,
Id: 'nextgraph',
Name: 'NextGraph',
Description: 'Decentralized and local-first web 3.0 ecosystem (everything apps and framework/SDK)',
Website: 'https://nextgraph.org',
Deployment: ['Self-hosted','Hosted'],
License: 'MIT',
MaturityLevel: 'Alpha',
GitHub: 'https://git.nextgraph.org/NextGraph/nextgraph-rs',
UniquenessNote: 'convergence of Linked Data, P2P, and local-first',
InitialReleaseDate: new Date('2024-09-02'),
// Score: {
// MultiDeviceCrossDevice: { data: 'Yes'},
// MultiDeviceDecentralized: { data: 'Yes', comment: 'replication with a federation of servers. no single point of failure' },
// OfflineSupportWrites: { data: 'Yes' },
// OfflineSupportArbitraryQueries: { data: 'Yes', comment: 'offline support for SPARQL on all local documents'},
// UserOwnedData: { data: 'Yes'},
// CollaborationMultiEdit: { data: 'Yes'},
// CollaborationConflictingWrites: { data: 'Yes'},
// SecurityE2EE: { data: 'Yes'},
// SecurityUserKeys: { data: 'Yes'},
// LongevityNoProprietaryServer: { data: 'Yes'}
// },
AppTarget: {
Platform: { data: ['Browser', 'Node', 'iOS', 'Android', 'macOS', 'WASM', 'Linux'] },
LanguageSDK: { data: ['TypeScript', 'JavaScript', 'Rust', 'Python'] },
FrameworkIntegrations: { data: ['React', 'Svelte'] },
ClientBundleSize: { data: '4 kB compressed', comment: 'not including Automerge or Yjs dependencies' }
},
Networking: {
Protocol: { data: ['WebSockets'] },
Topology: { data: 'P2P via Relay Servers' },
},
ServerSideData: {
PersistenceMechanism: { data: ['Custom'] },
DataModelParadigm: { data: 'Document', comment: 'Document-oriented and graph (RDF)' }
},
ClientSideData: {
QueryAPI: { data: ['Async', 'Sync', 'Signals-based Reactivity'] },
PersistenceMechanism: { data: ['Yjs', 'OPFS', 'RocksDB'] },
PersistenceFeatures: { data: 'Indexes', comment: 'also with Full-text search and Transactions' },
DataModel: { data: 'Document', comment: 'Document-oriented and graph (RDF)' },
SchemaManagement: { data: ['Schema definition', 'Schema validation on write'] },
OfflineReads: { data: 'Full Support' },
OptimisticUpdates: { data: 'Yes'},
OfflineWrites: { data: 'Local conflict resolution' }
},
SynchronizationStrategy: {
FullOrPartialReplication: { data: ['Full Replication', 'Partial Replication'] },
ConflictHandling: { data: 'Automatic via CRDT', comment: 'supports Automerge, Yjs and RDF' },
WhereResolutionOccurs: { data: 'Client' },
WhatGetsSynced: {
data: {
ClientToClient: 'Commits',
},
},
Authority: { data: 'Decentralized' }
},
AuthIdentity: {
Encryption: { data: 'Yes', comment: 'end-to-end encryption + encryption at rest' },
AuthenticationMethod: { data: ['Built-in', 'Public keys'] },
AuthorizationPermissions: { data: 'Cryptographic Capabilities' }
},
UIRelated: {
RichTextEditing: { data: 'Yes' },
Components: { data: ['reusable Editors', 'reusable Viewers', 'Auth with Wallet', 'Malleable software'] }
},
DevelopmentWorkflowsDX: {
CLI: { data: 'Command line interface tools for developers and end-users'},
TypeSupport: {
data: 'type support via LDO',
},
}
})