mrjjwright / nosqlite Goto Github PK
View Code? Open in Web Editor NEWA zero-config SQLite wrapper written in CoffeeScript
A zero-config SQLite wrapper written in CoffeeScript
Just wanted to post a status update here on the current direction for NoSQLite. After a lot of deliberation I am working on a version of NoSQLite that is more in keeping with it's original goal, namely being a great way to work with SQLite from any JS environment, client or server-side. Therefore I am working on making NoSQLite work soley on top of the html 5 web api. Obviously, if this is successful it it will work in the browser but I am also creating an html5 wrapper around node-sqlite here.
The end goal is a version of NoSQLite that works in the browser and inside Node.js seamlessly. Also, I want this to work on an iPhone/iPad apps as well by running inside webkit, e.g. in something like PhoneGap. I also have a concrete algorithm for syncing that I want to implement too which will be a big selling point since it creates a super simple and useful peer-to-peer API around SQLIte. I am excited about this new direction and hopefully soon, somebody will give a damn about this project. :)
I am proposing that NoSQLite have a mode called safe mode where tables become append-only, SHA-1 hashes are kept of all content, and all changes are tracked in a commit table. This mode would also enable git-like syncing (pushing and pulling) between NoSQLite databases. Here is a gist which explains more (his gist was exported from OmniOutliner where I am working on hashing out the details so if you want the original OmniOutliner file let me know):
SQLite itself has no dependencies so it would be nice to build NoSQLite with as few dependencies as possible.
SQLite provides a full SQL-compliant database with zero dependencies in one file and a clean well tested C interface that compiles easily on any platform.
NoSQLite would build on SQLite to offer an HTTP enabled JSON datastore on top of SQLite, that stores JSON documents in a regular searchable tables and offers git-like safe content storage and syncing. NoSQLite can start a tiny web server that exposes a simple JSON interface as well as connect to other NoSQLite interfaces over HTTP. It too would have a clean C interface that compiles on any platform so that it could easily be integrated into Objective-C, Node JS or most any major language.
The proposed dependencies I have in mind are:
Currently, NoSQLite approach is to depend on Node.js. Node.js has few dependencies itself and compiles easily today to Linux platform and will probably compile to Windows soon. In places where Node can't run, I assume that NoSQLite features wold be replicated in that environment, e.g. Cocoa/Objective C on the iPhone/iPad. Node and Node libraries might provide NoSQLite capabilities in the future that would be hard to replicate without it, such as sharding among workers or some performance features around streaming. Also by building on Node, it helps NoSQLite to transition into a multi-user serving environment much more seamlessly. So it's still probably the best approach. I just wanted to get my idea down for an extremely lightweight version of NoSQLite more in the spirit of SQLite and that might expand it's usage.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.