Alternatives to LokiJS logo

Alternatives to LokiJS

Redis, Pouchdb, SQLite, NeDB, and MongoDB are the most popular alternatives and competitors to LokiJS.
11
16
+ 1
1

What is LokiJS and what are its top alternatives?

LokiJS is a document oriented database written in javascript, published under MIT License. Its purpose is to store javascript objects as documents in a nosql fashion and retrieve them with a similar mechanism. Runs in node (including cordova/phonegap and node-webkit), nativescript and the browser.
LokiJS is a tool in the In-Memory Databases category of a tech stack.
LokiJS is an open source tool with 5.1K GitHub stars and 407 GitHub forks. Here’s a link to LokiJS's open source repository on GitHub

LokiJS alternatives & related posts

Redis logo

Redis

15K
10.1K
3.8K
15K
10.1K
+ 1
3.8K
An in-memory database that persists on disk
Redis logo
Redis
VS
LokiJS logo
LokiJS

related Redis posts

Robert Zuber
Robert Zuber
CTO at CircleCI · | 22 upvotes · 238.2K views
atCircleCICircleCI
MongoDB
MongoDB
PostgreSQL
PostgreSQL
Redis
Redis
GitHub
GitHub
Amazon S3
Amazon S3

We use MongoDB as our primary #datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and #ETL.

As we pull #microservices from our #monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writes are in process.

See more
Thierry Schellenbach
Thierry Schellenbach
CEO at Stream · | 17 upvotes · 93.9K views
atStreamStream
Redis
Redis
Cassandra
Cassandra
RocksDB
RocksDB
#InMemoryDatabases
#DataStores
#Databases

1.0 of Stream leveraged Cassandra for storing the feed. Cassandra is a common choice for building feeds. Instagram, for instance started, out with Redis but eventually switched to Cassandra to handle their rapid usage growth. Cassandra can handle write heavy workloads very efficiently.

Cassandra is a great tool that allows you to scale write capacity simply by adding more nodes, though it is also very complex. This complexity made it hard to diagnose performance fluctuations. Even though we had years of experience with running Cassandra, it still felt like a bit of a black box. When building Stream 2.0 we decided to go for a different approach and build Keevo. Keevo is our in-house key-value store built upon RocksDB, gRPC and Raft.

RocksDB is a highly performant embeddable database library developed and maintained by Facebook’s data engineering team. RocksDB started as a fork of Google’s LevelDB that introduced several performance improvements for SSD. Nowadays RocksDB is a project on its own and is under active development. It is written in C++ and it’s fast. Have a look at how this benchmark handles 7 million QPS. In terms of technology it’s much more simple than Cassandra.

This translates into reduced maintenance overhead, improved performance and, most importantly, more consistent performance. It’s interesting to note that LinkedIn also uses RocksDB for their feed.

#InMemoryDatabases #DataStores #Databases

See more
Pouchdb logo

Pouchdb

64
72
2
64
72
+ 1
2
Open-source JavaScript database inspired by Apache CouchDB that's designed to run well within the browser
Pouchdb logo
Pouchdb
VS
LokiJS logo
LokiJS

related Pouchdb posts

Jonathan Pugh
Jonathan Pugh
Software Engineer / Project Manager / Technical Architect · | 19 upvotes · 264.8K views
Framework7
Framework7
JavaScript
JavaScript
TypeScript
TypeScript
Figma
Figma
Visual Studio Code
Visual Studio Code
Webpack
Webpack
Babel
Babel
Ruby
Ruby
HTML5
HTML5
CouchDB
CouchDB
Pouchdb
Pouchdb
Font Awesome
Font Awesome
Apache Cordova
Apache Cordova
CSS 3
CSS 3
PhoneGap
PhoneGap
#Css
#CSS3
#SCSS
#Sass
#Less
#Electron
#HandleBars
#Template7
#Sketch
#GraphQL
#HTML5
#GraphCool

I needed to choose a full stack of tools for cross platform mobile application design & development. After much research and trying different tools, these are what I came up with that work for me today:

For the client coding I chose Framework7 because of its performance, easy learning curve, and very well designed, beautiful UI widgets. I think it's perfect for solo development or small teams. I didn't like React Native. It felt heavy to me and rigid. Framework7 allows the use of #CSS3, which I think is the best technology to come out of the #WWW movement. No other tech has been able to allow designers and developers to develop such flexible, high performance, customisable user interface elements that are highly responsive and hardware accelerated before. Now #CSS3 includes variables and flexboxes it is truly a powerful language and there is no longer a need for preprocessors such as #SCSS / #Sass / #less. React Native contains a very limited interpretation of #CSS3 which I found very frustrating after using #CSS3 for some years already and knowing its powerful features. The other very nice feature of Framework7 is that you can even build for the browser if you want your app to be available for desktop web browsers. The latest release also includes the ability to build for #Electron so you can have MacOS, Windows and Linux desktop apps. This is not possible with React Native yet.

Framework7 runs on top of Apache Cordova. Cordova and webviews have been slated as being slow in the past. Having a game developer background I found the tweeks to make it run as smooth as silk. One of those tweeks is to use WKWebView. Another important one was using srcset on images.

I use #Template7 for the for the templating system which is a no-nonsense mobile-centric #HandleBars style extensible templating system. It's easy to write custom helpers for, is fast and has a small footprint. I'm not forced into a new paradigm or learning some new syntax. It operates with standard JavaScript, HTML5 and CSS 3. It's written by the developer of Framework7 and so dovetails with it as expected.

I configured TypeScript to work with the latest version of Framework7. I consider TypeScript to be one of the best creations to come out of Microsoft in some time. They must have an amazing team working on it. It's very powerful and flexible. It helps you catch a lot of bugs and also provides code completion in supporting IDEs. So for my IDE I use Visual Studio Code which is a blazingly fast and silky smooth editor that integrates seamlessly with TypeScript for the ultimate type checking setup (both products are produced by Microsoft).

I use Webpack and Babel to compile the JavaScript. TypeScript can compile to JavaScript directly but Babel offers a few more options and polyfills so you can use the latest (and even prerelease) JavaScript features today and compile to be backwards compatible with virtually any browser. My favorite recent addition is "optional chaining" which greatly simplifies and increases readability of a number of sections of my code dealing with getting and setting data in nested objects.

I use some Ruby scripts to process images with ImageMagick and pngquant to optimise for size and even auto insert responsive image code into the HTML5. Ruby is the ultimate cross platform scripting language. Even as your scripts become large, Ruby allows you to refactor your code easily and make it Object Oriented if necessary. I find it the quickest and easiest way to maintain certain aspects of my build process.

For the user interface design and prototyping I use Figma. Figma has an almost identical user interface to #Sketch but has the added advantage of being cross platform (MacOS and Windows). Its real-time collaboration features are outstanding and I use them a often as I work mostly on remote projects. Clients can collaborate in real-time and see changes I make as I make them. The clickable prototyping features in Figma are also very well designed and mean I can send clickable prototypes to clients to try user interface updates as they are made and get immediate feedback. I'm currently also evaluating the latest version of #AdobeXD as an alternative to Figma as it has the very cool auto-animate feature. It doesn't have real-time collaboration yet, but I heard it is proposed for 2019.

For the UI icons I use Font Awesome Pro. They have the largest selection and best looking icons you can find on the internet with several variations in styles so you can find most of the icons you want for standard projects.

For the backend I was using the #GraphCool Framework. As I later found out, #GraphQL still has some way to go in order to provide the full power of a mature graph query language so later in my project I ripped out #GraphCool and replaced it with CouchDB and Pouchdb. Primarily so I could provide good offline app support. CouchDB with Pouchdb is very flexible and efficient combination and overcomes some of the restrictions I found in #GraphQL and hence #GraphCool also. The most impressive and important feature of CouchDB is its replication. You can configure it in various ways for backups, fault tolerance, caching or conditional merging of databases. CouchDB and Pouchdb even supports storing, retrieving and serving binary or image data or other mime types. This removes a level of complexity usually present in database implementations where binary or image data is usually referenced through an #HTML5 link. With CouchDB and Pouchdb apps can operate offline and sync later, very efficiently, when the network connection is good.

I use PhoneGap when testing the app. It auto-reloads your app when its code is changed and you can also install it on Android phones to preview your app instantly. iOS is a bit more tricky cause of Apple's policies so it's not available on the App Store, but you can build it and install it yourself to your device.

So that's my latest mobile stack. What tools do you use? Have you tried these ones?

See more
Josh Dzielak
Josh Dzielak
Developer Advocate at DeveloperMode · | 5 upvotes · 40.4K views
Firebase
Firebase
Pouchdb
Pouchdb
CouchDB
CouchDB
Cloudant
Cloudant

As a side project, I was building a note taking app that needed to synchronize between the client and the server so that it would work offline. At first I used Firebase to store the data on the server and wrote my own code to cache Firebase data in local storage and synchronize it. This was brittle and not performant. I figured that someone else must have solved this in a better way so I went looking for a better solution.

I needed a tool where I could write the data once and it would write to client and server, and when clients came back on line they would automatically catch the client up. I also needed conflict resolution. I was thrilled to discover Pouchdb and its server-side counterpart CouchDB. Together, they met nearly all of my requirements and were very easy to implement - I was able to remove a ton of custom code and have found the synchronization to be very robust. Pouchdb 7 has improved mobile support too, so I can run the app on iOS or Android browsers.

My Couchdb instance is actually a Cloudant instance running on IBM Bluemix. For my fairly low level of API usage, it's been totally free, and it has a decent GUI for managing users and replications.

See more
SQLite logo

SQLite

3.5K
2.7K
505
3.5K
2.7K
+ 1
505
A software library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine
SQLite logo
SQLite
VS
LokiJS logo
LokiJS

related SQLite posts

Daniel Quinn
Daniel Quinn
Senior Developer at Workfinder · | 2 upvotes · 35.9K views
atThe Paperless ProjectThe Paperless Project
SQLite
SQLite
PostgreSQL
PostgreSQL

SQLite is a tricky beast. It's great if you're working single-threaded, but a Terrible Idea if you've got more than one concurrent connection. You use it because it's easy to setup, light, and portable (it's just a file).

In Paperless, we've built a self-hosted web application, so it makes sense to standardise on something small & light, and as we don't have to worry about multiple connections (it's just you using the app), it's a perfect fit.

For users wanting to scale Paperless up to a multi-user environment though, we do provide the hooks to switch to PostgreSQL .

See more
SQLite
SQLite
PostgreSQL
PostgreSQL

SQLite for development, PostgreSQL SQL for production databases.

See more
NeDB logo

NeDB

5
3
0
5
3
+ 1
0
Simple in-app or in-browser pure javascript database
    Be the first to leave a pro
    NeDB logo
    NeDB
    VS
    LokiJS logo
    LokiJS
    MongoDB logo

    MongoDB

    17.2K
    13.6K
    3.9K
    17.2K
    13.6K
    + 1
    3.9K
    The database for giant ideas
    MongoDB logo
    MongoDB
    VS
    LokiJS logo
    LokiJS

    related MongoDB posts

    Jeyabalaji Subramanian
    Jeyabalaji Subramanian
    CTO at FundsCorner · | 24 upvotes · 372.6K views
    atFundsCornerFundsCorner
    MongoDB
    MongoDB
    PostgreSQL
    PostgreSQL
    MongoDB Stitch
    MongoDB Stitch
    Node.js
    Node.js
    Amazon SQS
    Amazon SQS
    Python
    Python
    SQLAlchemy
    SQLAlchemy
    AWS Lambda
    AWS Lambda
    Zappa
    Zappa

    Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our production MongoDB to a PostgreSQL database for data warehousing and business intelligence.

    We set ourselves the following criteria for the optimal tool that would do this job: - The data replication must be near real-time, yet it should NOT impact the production database - The data replication must be horizontally scalable (based on the load), asynchronous & crash-resilient

    Based on the above criteria, we selected the following tools to perform the end to end data replication:

    We chose MongoDB Stitch for picking up the changes in the source database. It is the serverless platform from MongoDB. One of the services offered by MongoDB Stitch is Stitch Triggers. Using stitch triggers, you can execute a serverless function (in Node.js) in real time in response to changes in the database. When there are a lot of database changes, Stitch automatically "feeds forward" these changes through an asynchronous queue.

    We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service. Interestingly enough, MongoDB stitch offers integration with AWS services.

    In the Node.js function, we wrote minimal functionality to communicate the database changes (insert / update / delete / replace) to Amazon SQS.

    Next we wrote a minimal micro-service in Python to listen to the message events on SQS, pickup the data payload & mirror the DB changes on to the target Data warehouse. We implemented source data to target data translation by modelling target table structures through SQLAlchemy . We deployed this micro-service as AWS Lambda with Zappa. With Zappa, deploying your services as event-driven & horizontally scalable Lambda service is dumb-easy.

    In the end, we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!

    See more
    Robert Zuber
    Robert Zuber
    CTO at CircleCI · | 22 upvotes · 238.2K views
    atCircleCICircleCI
    MongoDB
    MongoDB
    PostgreSQL
    PostgreSQL
    Redis
    Redis
    GitHub
    GitHub
    Amazon S3
    Amazon S3

    We use MongoDB as our primary #datastore. Mongo's approach to replica sets enables some fantastic patterns for operations like maintenance, backups, and #ETL.

    As we pull #microservices from our #monolith, we are taking the opportunity to build them with their own datastores using PostgreSQL. We also use Redis to cache data we’d never store permanently, and to rate-limit our requests to partners’ APIs (like GitHub).

    When we’re dealing with large blobs of immutable data (logs, artifacts, and test results), we store them in Amazon S3. We handle any side-effects of S3’s eventual consistency model within our own code. This ensures that we deal with user requests correctly while writes are in process.

    See more
    Aerospike logo

    Aerospike

    84
    74
    24
    84
    74
    + 1
    24
    Flash-optimized in-memory open source NoSQL database
    Aerospike logo
    Aerospike
    VS
    LokiJS logo
    LokiJS
    MemSQL logo

    MemSQL

    31
    30
    7
    31
    30
    + 1
    7
    Database for real-time transactions and analytics.
    MemSQL logo
    MemSQL
    VS
    LokiJS logo
    LokiJS
    SAP HANA logo

    SAP HANA

    27
    21
    9
    27
    21
    + 1
    9
    An in-memory, column-oriented, relational database management system
    SAP HANA logo
    SAP HANA
    VS
    LokiJS logo
    LokiJS
    Azure Redis Cache logo

    Azure Redis Cache

    18
    8
    0
    18
    8
    + 1
    0
    A fully managed, open source–compatible in-memory data store
      Be the first to leave a pro
      Azure Redis Cache logo
      Azure Redis Cache
      VS
      LokiJS logo
      LokiJS
      Apache Ignite logo

      Apache Ignite

      13
      6
      0
      13
      6
      + 1
      0
      An open-source distributed database, caching and processing platform
        Be the first to leave a pro
        Apache Ignite logo
        Apache Ignite
        VS
        LokiJS logo
        LokiJS
        VoltDB logo

        VoltDB

        10
        19
        16
        10
        19
        + 1
        16
        In-memory relational DBMS capable of supporting millions of database operations per second
        VoltDB logo
        VoltDB
        VS
        LokiJS logo
        LokiJS
        Beringei logo

        Beringei

        9
        24
        0
        9
        24
        + 1
        0
        High performance, in-memory storage engine for time series data (by Facebook)
          Be the first to leave a pro
          Beringei logo
          Beringei
          VS
          LokiJS logo
          LokiJS
          Tarantool logo

          Tarantool

          8
          2
          0
          8
          2
          + 1
          0
          Free and open source an in-memory database and application server
            Be the first to leave a pro
            Tarantool logo
            Tarantool
            VS
            LokiJS logo
            LokiJS
            KeyDB logo

            KeyDB

            5
            5
            0
            5
            5
            + 1
            0
            Open source lighting fast key-value database with advanced features
              Be the first to leave a pro
              KeyDB logo
              KeyDB
              VS
              LokiJS logo
              LokiJS
              SummitDB logo

              SummitDB

              3
              8
              0
              3
              8
              + 1
              0
              In-Memory NoSQL DB
                Be the first to leave a pro
                SummitDB logo
                SummitDB
                VS
                LokiJS logo
                LokiJS
                BuntDB logo

                BuntDB

                3
                8
                1
                3
                8
                + 1
                1
                A fast, embeddable, in-memory key/value database for Go with custom indexing and geospatial support
                BuntDB logo
                BuntDB
                VS
                LokiJS logo
                LokiJS
                NCache logo

                NCache

                2
                1
                0
                2
                1
                + 1
                0
                Distributed In-Memory Datastore
                  Be the first to leave a pro
                  NCache logo
                  NCache
                  VS
                  LokiJS logo
                  LokiJS
                  MapDB logo

                  MapDB

                  2
                  0
                  0
                  2
                  0
                  + 1
                  0
                  Concurrent Maps, Sets and Queues backed by disk storage or off-heap-memory
                    Be the first to leave a pro
                    MapDB logo
                    MapDB
                    VS
                    LokiJS logo
                    LokiJS
                    Tile38 logo

                    Tile38

                    2
                    0
                    0
                    2
                    0
                    + 1
                    0
                    High-performance database for geospatial and realtime geofencing applications
                      Be the first to leave a pro