All Projects → CondensationDB → Condensation

CondensationDB / Condensation

Licence: apache-2.0
Condensation is a zero-trust distributed database that ensures data ownership and data security

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Condensation

foundationdb-dotnet-client
C#/.NET Binding for FoundationDB Client API
Stars: ✭ 118 (-66.57%)
Mutual labels:  distributed-database
Kinto.js
An Offline-First JavaScript Client for Kinto.
Stars: ✭ 268 (-24.08%)
Mutual labels:  offline-first
Aviondb
A decentralised database with MongoDB-like developer interface (Fully Compatible with OrbitDB)
Stars: ✭ 301 (-14.73%)
Mutual labels:  distributed-database
git-documentdb
Offline-first Database that Syncs with Git
Stars: ✭ 20 (-94.33%)
Mutual labels:  offline-first
Tailpos
TailPOS an Offline First Open Source POS for ERPNext
Stars: ✭ 258 (-26.91%)
Mutual labels:  offline-first
Trino
Official repository of Trino, the distributed SQL query engine for big data, formerly known as PrestoSQL (https://trino.io)
Stars: ✭ 4,581 (+1197.73%)
Mutual labels:  distributed-database
chiselstore
SQLite + Little Raft = 🚀
Stars: ✭ 398 (+12.75%)
Mutual labels:  distributed-database
Yjs
Shared data types for building collaborative software
Stars: ✭ 5,894 (+1569.69%)
Mutual labels:  offline-first
Android Pwa Wrapper
Android Wrapper to create native Android Apps from offline-capable Progressive Web Apps
Stars: ✭ 265 (-24.93%)
Mutual labels:  offline-first
Crate
CrateDB is a distributed SQL database that makes it simple to store and analyze massive amounts of data in real-time.
Stars: ✭ 3,254 (+821.81%)
Mutual labels:  distributed-database
ambianic-ui
PWA for managing Ambianic Edge devices (smart cameras).
Stars: ✭ 32 (-90.93%)
Mutual labels:  offline-first
Get Me Through
A Free, Offline, Real-Time, Open-source web-app to assist organisers of any event in allowing only authorised/invited people using Face-Recognition Technology or QR Code.
Stars: ✭ 255 (-27.76%)
Mutual labels:  offline-first
React Boilerplate Typescript
🔥 A highly scalable, offline-first foundation with the best developer experience and a focus on performance and best practices ( Typescript )
Stars: ✭ 279 (-20.96%)
Mutual labels:  offline-first
skytable
Skytable is an extremely fast, secure and reliable real-time NoSQL database with automated snapshots and TLS
Stars: ✭ 696 (+97.17%)
Mutual labels:  distributed-database
Catena
Catena is a distributed database based on a blockchain, accessible using SQL.
Stars: ✭ 302 (-14.45%)
Mutual labels:  distributed-database
credt
CRDT-like data structures for building distributed, offline-first applications
Stars: ✭ 32 (-90.93%)
Mutual labels:  offline-first
Ios Pwa Wrapper
An iOS Wrapper application to create a native iOS App from an offline-capable Progressive Web App.
Stars: ✭ 268 (-24.08%)
Mutual labels:  offline-first
3box
The easiest way for Ethereum apps to manage user data.
Stars: ✭ 348 (-1.42%)
Mutual labels:  distributed-database
Js
Gryadka is a minimalistic master-master replicated consistent key-value storage based on the CASPaxos protocol
Stars: ✭ 304 (-13.88%)
Mutual labels:  distributed-database
Awesome Blockchains
A collection about awesome blockchains - open distributed public databases w/ crypto hashes incl. git ;-). Blockchains are the new tulips 🌷🌷🌷. Distributed is the new centralized.
Stars: ✭ 3,243 (+818.7%)
Mutual labels:  distributed-database



Condensation

The securest database,
to build whatever you need


About

Condensation enables to build modern applications while ensuring data ownership and security. It's a one stop open source project to match the next decades complex security challenges and to protect digital rights.

Condensation is built around security

  • Data control: Users encrypt their data only for other entrusted users intended to receive the data.
  • Data protection: Data is never decrypted at a server level making to hosting providers/malicious persons impossible to read stored data.
  • Data reliability: Data is always signed and marked by a timestamp. Nothing is lost even when a user goes offline.
  • Data integrity: Data is identified by an address which is generated from its content allowing to ensure data content hasn't been altered and data issuer is the original one.

Key features of Condensation

  • Distributed database
  • Cloud compatible
  • Multiple data type storage
  • Conflict free merge
  • Versioning
  • Offline & mobile-first mode

What can you build with Condensation

  • Build any kind of app secured by design, with real end-to-end encryption.
  • Build collaborative tools such as google doc, but with control on the code and the privacy.
  • Build distributed systems where each user can store data on his server while synchronizing with others.

Motivation

The structure of today's file and database systems dates back to the 1970s, when storage space was extremely scarce, and computers were few. These systems were therefore designed to run on a single machine, and sometimes on a single disk.

While both database and file systems have greatly evolved over time, their main structure has hardly changed. Database systems are based on tables with mutable records (rows), while file systems use a hierarchy of folders with mutable files inside. In both systems, data can be modified with little effort, and at any time. Data synchronization, however, is notoriously difficult and error-prone.

In todays' connected world, data is used on different devices, or shared with other people. Hence, efficient data synchronization is key.

Aside of file and database systems, revision control systems have been developed and used since the 1980s. Some of them, like git or hq, are fully distributed, and do not require any central server whatsoever. Each user has his/her own version of the data, and can merge changes from other users. Such systems allow for efficient and provably correct data synchronization.

While they are great for source code management, current revision control systems are not suited as general purpose data systems. In order to benefit from such systems, the user needs to have a minimal understanding of branches, merging and conflict resolution, which is far beyond the knowledge of an average computer user. In addition, occasional merge conflicts are inevitable, and prevent such systems from being used in a transparent way.

The Condensation data system has been designed from the ground up to address this. The result is a general-purpose data system with lightweight transactions and efficient data synchronization in a completely distributed setting. Merge conflicts are impossible by design, so that no user intervention is required during the synchronization process. The data itself is end-to-end encrypted, and may be spread across multiple storage systems.

White-paper
Related article

How it works

Inspired by the blockchain system, the email system, and git versioning, Condensation's architecture is a unique solution to develop scalable and modern applications, excelling at synchronization.

Condensation manages data locally
Compared to commonly centralized databases, Condensation writes and reads data directly on the user's device in something similar to a document database with attributes. When edited, this document is splitted dynamically into immutable objects or pieces of the document containing the history of changes.

Then, encrypted objects circulate through the network
Condensation does not need to decrypt data as it is the case for classic SQL and NoSQL databases. This erradicates the danger of data breaches. The data can circulate freely as objects are recognized by their address and not their content. The content stays encrypted until its received on the end user's device.

Finally, data is condensated on the user's device
As objects can circulate and be stored freely, Condensation provides mechanics to reassemble and update the data when it arrives on the user's device. Everything is synchronized automatically without additionnal implementations for application makers.

It results in a new kind of system where users can collaborate while keeping the ownership of their data.

Get started

Condensation Java implementation is stable but we are still packaging it, preparing instructions for the installation, and building the first tutorials. The most advanced developers can already get into the code with the following link.

Source code

If you have a strong desire to contribute, please just get in touch at [email protected], we will walk through the installation together.

Project roadmap

  • [x] Research and development of the conflict free merge
  • [x] Develop the messaging system
  • [x] Develop the end-to-end encryption
  • [x] Package and publish Java version (Jan. 2021)
  • [ ] Release the white-paper (Feb. -> Mar. 2021)
  • [ ] Publish first pilot with Microcontroller integration (May. 2021)
  • [ ] Port the code to Javascript for web apps development (Jul. 2021)
  • [ ] Port to Swift version for iOS (Nov. 2021)

Contribute

Are you interested to participateto our adventure? Get in touch at [email protected]

We need your help to:

Raise awareness and educating about Condensation The first thing we want is to educate on how innovative is Condensation to build solutions. Indeed, this new kind of database bridging the gap between mutable and immutable structures, has many benefits such as end-to-end encryption, multi-device synchronization, collaboration, offline-first, and much more we didn't yet described. Producing educational material is critical to raise awareness about the project. It can be articles, use cases, diagrams, advices and testimonials from your experience. We build this community to support your content, we will always do the best to enhance your positive impact on the project.

Developing the core of Condensation The priority is now to port the code to other languages (e.g. Javascript, Swift) as Condensation is mostly developed on Java as of today. For the immutable part of Condensation, specifications are now exhaustively described and we are available to guide you into each step. If you are interested in contributing, we will give you more details on the next priorities and connect you with our pioneering community.

Main links

Website
Documentation
Source code

Thanks to our sponsors

SPEIInnosuisseEPFL

Become a contributor

We are actively developing Condensation, if you want to invest, to contribute or to develop a pilot please reach out at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].