Coder Social home page Coder Social logo

igorski89 / couchbase-lite-ios Goto Github PK

View Code? Open in Web Editor NEW

This project forked from couchbase/couchbase-lite-ios

4.0 4.0 2.0 30.07 MB

Lightweight, embedded, syncable NoSQL database engine for iOS (and Mac!) apps.

License: Apache License 2.0

Objective-C 98.35% Shell 0.32% Makefile 0.21% C 1.00% Ruby 0.12%

couchbase-lite-ios's People

Contributors

alexandruspotme avatar chbeer avatar chriskau avatar dlvenable avatar fabien avatar igorski89 avatar jchris avatar keynuker avatar lambmj avatar mrloop avatar mz2 avatar nickkitto avatar paulcapestany avatar pegli avatar refractalize avatar robin avatar snej avatar tfmd avatar tleyden avatar tspacek avatar yannisroy avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

Forkers

yannisroy spotme

couchbase-lite-ios's Issues

non-streaming JSON _changes feed parser

relative "enhancement": CBLSocketChangeTracker uses YAJL as streaming JSON parser. The issue is that old erlang-based Couchbase.framework uses the same library and unfortunately both cannot be used in the same address space.

This means that I need to revert implementation to use non-streaming parser implementation from old TouchDB.

The plan:

  1. rename CBLSocketChangeTracker to CBLSocketStreamingChangeTracker
  2. import TDConnectionChangeTracker and refactor to CBLConnectionChangeTracker
  3. same with TDSocketChangeTracker
  4. refactor CBLChangeTracker to provide receivedChanges:errorMessage: and receivedChange: methods
  5. refactor CBLChangeTracker constructor:
    • if CBLSocketStreamingChangeTracker class exist – use it
    • if normal changes feed – use TDConnectionChangeTracker
    • if continuos or longpoll – use TDSocketChangeTracker

start() and send() for list functions

in addition to #3 list functions should have access to start() and send() functions in order to be able to send chunked responses.

Obviously since we don't have/really need this functionality in mobile, we will just emulate it with response object, because this is how the most list functions are written

Always store replication checkpoint documents on local db

Checkpoint documents _local/<replication_id> are stored on remote database. This could be an issue if remote database is read-only. Storing checkpoint documents on local db will also improve replication start speed because it won't need perform remote request.

JS view/show/list functions shouldn't be cached by name

This makes sense with native functions, because in that case you need to explicitly specify version, but in case of js functions from design documents, they will never be invalidated.

Caching via $name-$_rev should do the trick. Alternatively, we can use MD5 from function's source code.

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.