Let me know!

Give us your email and we will reach out when this feature lands

    Ditto Product Roadmap

    Thank you!

    We're probably going to get in touch soon! So excited that you're excited for these new features!

    These are the upcoming features that are under consideration, development, or have already been released. This page always bring us the most excitement!


    Consideration

    These are subject to change. But let us know which one is important to you.

    Online JavaScript Playground
    web

    Play with Ditto right in the browser. Sync between tabs and instances.

    End-to-End Encryption
    security

    Allow devices sync data over a multi-hop topology while preserving permissions via end-to-end encryption.

    Ditto Bus (Pub Sub)
    bluetoothwifimesh-network

    Ditto Bus is a pub sub-like API that leverages Ditto’s existing peer-to-peer networking. It is built for very low-latency applications such as remote control or live text cursor sync. Messages are sent as fast a possible with a high preference towards speed over reliability.

    Apps can subscribe to messages like:

    ditto.bus["mytopic"].subscribe { (msg: Data) in
      
    }
    

    And publish like this:

    // Send arbitrary byte arrays
    ditto.bus["mytopic"].publish([0x01, 0x02])
    // sending a non-byte string will automatically use CBOR serialization for convenience
    ditto.bus["mytopic"].publish([
      "foo": "bar"
    ])
    

    Relationships and Joins
    store

    Add an additional type into the document that specifies a relationship to a different document (even cross-collections). Add SQL-Join like functions to map and reduce results.

    Long-Range Bluetooth Low Energy
    bluetoothmesh-network

    Add support for long-range Bluetooth codecs. This will enable supported devices to sync data up to 1 kilometer.

    Embedded SoC Support
    platform

    Run Ditto optimized for an embedded application on dedicated hardware.

    Strongly Consistent Operations
    store

    These operations allow only one peer per transaction to edit a document. This is to enable consensus across the mesh. Great for applications like order fulfillment, maintenance, and point of sale.

    Multiplex Version 3
    bluetoothwifimesh-network

    Sync data over unreliable or lossy transports. In conjunction with the Ditto Bus this will be a perfect addition for low-latency real time games, robotics, AR/VR applications.

    Audio Streaming
    bluetoothwifimesh-network

    Send realtime audio across the mesh network.

    Bidirectional Sync with Other Databases
    iOSswift

    Replicate seamlessly between other SQL and NoSQL databases and Ditto's Cloud. iOS, Android, web, and IoT devices will instantly observe changes from external databases and able to sync changes back to them.

    Flutter Support
    iOSAndroid

    iOS and Android Flutter Support.

    Geospatial Indexing
    store

    Add special indexing specifically for document properties that represent geographic data like latitude and longitude.

    Low Code No Code Widget Designer
    no-codelow-codeplatform

    Build a Low-Code or No-Code widget designer where users can design user interface components like table views, map views, and forms and sync them to iOS, Android, and web apps. Interfaces will be offline-first and are able to show and edit data even while completely offline.

    Multiplex Version 4
    bluetoothwifimesh-network

    Improve reliability of sync using multiple lossy means of transport using forward error correction and network coding.

    Python Support
    bluetoothwifimesh-network

    Cross-platform Python Support. Most likely aim for version 3.7 or higher

    Secondary Indexing
    store

    Add secondary indexing support for the data store for faster reads specific to your application. It's likely that the indexes will not be synced and will be a local-data operation only for more flexibility

    Share internet connection over mesh
    bluetoothwifimesh-network

    For devices that don't have an internet connection, they can proxy communication over the mesh.

    Video Streaming
    wifimesh-networkmedia

    Stream realtime video across devices. We might even consider a droppable component in iOS, Android, and web apps.

    Development

    We're actively developing on this right now! If you can't wait, please let us know here.

    Ditto for Cloud
    cloud

    Sync data seamlessly with the Cloud. Ditto for the Cloud is what we call a "Big Peer" which can handle a tremendous amount of data.

    Ditto JavaScript & Web Support
    javascriptweb

    We're extremely excited about this! Now you can build applications for the web browser using Ditto. This will be published on NPM and will use WebAssembly underneath the hood.

    Ditto JavaScript - NodeJS and Electron Support
    javascriptnodejs

    Using the same JavaScript SDK on NPM, you'll be able to build cross-platform apps using NodeJS and Electron. The SDK will automatically detect if you are running in a native context and use our native core experience. This means that all peer to peer communication transports like local area network, Bluetooth Low Energy, and P2P Wi-Fi will be available to Linux and MacOS devices. We hope to have Windows support soon

    Safer FFI Web Assembly Support
    web

    Allow safer_ffi to generate JavaScript APIs via WebAssembly.

    Safer FFI NodeJS
    web

    Allow safer_ffi to generate JavaScript APIs over Node-FFI interop.

    Windows Support
    iOSswift

    Add support for Windows (including BLE, P2P Wi-Fi Direct and LAN). NodeJS, C#, C++, and Rust will first class programming languages.

    IndexedDB Support
    store

    Add IndexedDB support which will enable web browser apps to have completely offline-first capabilities. Offline changes will automatically be synced up to the cloud and to other peers upon reconnection.

    3rd Party Authentication Integration
    authsecurity

    Allow Ditto Cloud to proxy authentication requests to 3rd-party authentication systems.

    Time Series
    store

    A way to store data with time as a primary key so that you can query across time ranges and perform aggregate functions.

    Multi-Hop Presence
    store

    The current presence system only shows immediate peers. However Ditto's mesh system is able to sync over a multi-hop system. The addition of multi-hop presence will enable peers to see peers that are not directly connected but through an intermediate peer.

    Server-Side Change Streams
    store

    Allow 3rd-party APIs to tail a queue or change log of data event changes. Considering Kafka Queues and AWS SQS.

    Server-Side Webhooks
    store

    Allow external HTTP endpoints to observe server-side data changes.

    Angular Support
    webangular

    Add support for RxJS and easily hook live queries into Angular apps.

    Multicast Discovery
    bluetoothwifimesh-network

    Ditto currently uses mDNS, which isn't supported on every platform and has reliability issues. Multicast Discovery is a ground up implementation for more robust device discovery.

    On-Disk Encryption
    security

    Allow devices to keep data on-disk encrypted at all times.

    Push Notifications Support
    iOSAndroid

    Add support for Apple Push Notifications (APNS) and Android Push Notifications.

    Raspberry Pi Support
    iotplatformblewifimesh-network

    Allow Ditto to run on Raspberry Pi devices. This will leverage BLE and Local Area Network. We're investigating if we can get this to work with P2P Wi-Fi Direct or Apple Wireless Direct.

    React Native
    iOSAndroidreactreact-native

    Add React Native support for iOS, Android, and Web

    React Support
    webreact

    Add support for React providers, context APIs, and React hook for seamless integration.

    RxJava Support
    Androidjavakotlin

    Add support for RxJava to build Reactive applications for Android and on the server.

    USB Connection Support
    bluetoothwifimesh-network

    Allow devices to sync over wired USB transports.

    WiFi Aware
    wifimesh-network

    Allow Android devices (subject to device support) to use Wi-Fi Aware. An ad-hoc networking protocol that does not require infrastructure Wi-Fi.

    Released

    All features are released in the latest Ditto versions. Enjoy and give us feedback!

    Local Store
    store

    Use Ditto as an embedded local NoSQL database for iOS and Android. No license token required, no sync required either!

    Binary File Sync
    bluetoothwifimesh-networkstore

    Add support for syncing large binary files. This will include retries, pause, resume features as well. Devices that are interrupted due to loss of connectivity can resume syncing without starting from the beginning even from a different peer (so long as the devices are connected).

    Binary file sync uses Attachments API.

    Combine Support
    iOSswift

    Add support for Combine to build reactive applications for iOS and macOS

    See the released Cocoapod here CombineDitto

    pod 'DittoSwift'
    pod 'CombineDitto'
    

    iOS and Android L2CAP Support
    bluetoothwifimesh-network

    Added BLE L2CAP support for much faster synchronization. Android (10x faster) and iOS (5x faster).

    Multiplex Version 1 & 2
    bluetoothwifimesh-network

    Use the optimal fastest transport dynamically selected at runtime.

    Read the Blog Post

    RxSwift Support
    iOSswift

    Add support for RxSwift to build Reactive applications.

    See RxSwiftDitto for the Cocoapod!

    pod 'DittoSwift'
    pod 'RxSwiftDitto'