{"id":20597131,"url":"https://github.com/tradle/engine","last_synced_at":"2026-03-05T09:01:27.859Z","repository":{"id":10353941,"uuid":"58827052","full_name":"tradle/engine","owner":"tradle","description":"This main component of Tradle's SDK, one for all environments: mobiles, web and a server, tightly integrated with blockchains via specific adapters","archived":false,"fork":false,"pushed_at":"2023-01-23T17:52:54.000Z","size":3036,"stargazers_count":12,"open_issues_count":11,"forks_count":4,"subscribers_count":7,"default_branch":"master","last_synced_at":"2025-04-14T23:52:59.479Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tradle.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-14T19:48:31.000Z","updated_at":"2025-02-18T05:12:22.000Z","dependencies_parsed_at":"2023-02-13T01:30:40.262Z","dependency_job_id":null,"html_url":"https://github.com/tradle/engine","commit_stats":null,"previous_names":[],"tags_count":88,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Fengine","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Fengine/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Fengine/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tradle%2Fengine/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tradle","download_url":"https://codeload.github.com/tradle/engine/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248981260,"owners_count":21193144,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-16T08:20:25.440Z","updated_at":"2026-03-05T09:01:22.824Z","avatar_url":"https://github.com/tradle.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# tradle engine\n\nSDK for real-rime auditable blockchain-based messaging\n\n# Overview\n\n[![Build status](https://travis-ci.org/tradle/engine.svg)](https://travis-ci.org/tradle/engine)\n\nThis main component of Tradle's SDK is two-turbine engine, a two-channel communication device: 1) real-time messaging, and 2) blockchain seals. Messages can be plain or structured messages. The engine is made to work on mobiles, desktops and servers. Having one codebase is important to minimize security reviews. \n\nThe engine is designed to work with intermittent connections, common on mobile devices. For that it keeps an internal log of all actions and events, and resumes operations as soon as network connection is restored.\n\nThe engine's operations are covered by a patent. The tatent is filed only for defensive purposes, so you are welcome to use it in your open source projects.\n\n_this module is used by [Tradle](https://github.com/tradle/about/wiki)_  \n\nThe engine provides a higher level API to a number of low level Tradle components. A UI is developed separately, on [React Native based UI](https://github.com/pgmemk/TiM) for iOS and Android, and using React Native Web for the Web.\n\n### Datalog\n\nThis module uses a datalog, a log-based database of experienced activity that you can use to bootstrap your own databases from.\n\n### Messaging API\n\nDetails to follow\n\n# Usage\n\nSee [examples](https://github.com/tradle/example)\n\n## Events\n\n#### tim.on('ready', function () {...})\n\nthe engine has completed initialization. You don't need to wait for this event, internal logic takes care of it.\n\n#### tim.on('message', function (message, sender) {...}\n\nYou've received a `message` from `sender`\n\n#### tim.on('wroteseal', function (seal) {...}\n\nAn object was sealed to a blockchain\n\n#### tim.on('readseal', function (seal) {...}\n\nAn object was read off chain\n\n#### tim.on('sent', function (msg) {...}\n\nA message was successfully delivered\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradle%2Fengine","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftradle%2Fengine","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftradle%2Fengine/lists"}