Giter Site home page Giter Site logo

nosqlite's People

Contributors

mrjjwright avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

nosqlite's Issues

Current direction

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. :)

Safe mode

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):

http://gist.github.com/384199.

Idea - Small C based version of NoSQLite

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:

  • yajl - for fast, efficient JSON parsing (http://lloyd.github.com/yajl/).
  • mongoose - for a small embeddable webserver (http://code.google.com/p/mongoose/).
  • some tiny http client code, perhaps this could be written from scratch. Here is a page with options (http://curl.haxx.se/libcurl/competitors.html)
  • SQLite
  • Possibly, Lua. - It could be used as a stop gap scripting language to iterate on the interface until it is solid, at which time the interface could be implemented in C and Lua could be removed or kept around as a dependency for only new features or features that are hard to implement in C.

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.