{"id":22461533,"url":"https://github.com/hydro-sdk/hydro-sdk","last_synced_at":"2026-04-03T21:27:57.118Z","repository":{"id":36973135,"uuid":"237835599","full_name":"hydro-sdk/hydro-sdk","owner":"hydro-sdk","description":"Author Flutter experiences in Typescript. No native bridge, no V8. Just Dart. From runtime to virtual machine.","archived":false,"fork":false,"pushed_at":"2025-06-16T07:54:13.000Z","size":123390,"stargazers_count":693,"open_issues_count":175,"forks_count":35,"subscribers_count":11,"default_branch":"master","last_synced_at":"2025-07-28T01:38:28.382Z","etag":null,"topics":["android","codepush","dart","deliver-updates","flutter","hydro-sdk","ios","over-the-air","typescript"],"latest_commit_sha":null,"homepage":"","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hydro-sdk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":null,"patreon":null,"open_collective":"hydro-sdk","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2020-02-02T20:57:05.000Z","updated_at":"2025-05-18T09:24:28.000Z","dependencies_parsed_at":"2025-06-04T15:47:10.480Z","dependency_job_id":"1134b945-f0ac-4ca1-8b5a-4f6e2da3bf06","html_url":"https://github.com/hydro-sdk/hydro-sdk","commit_stats":{"total_commits":3282,"total_committers":9,"mean_commits":364.6666666666667,"dds":0.08104814137720906,"last_synced_commit":"00430ce9f58d97452a2876bfc7757c129f352b94"},"previous_names":[],"tags_count":466,"template":false,"template_full_name":null,"purl":"pkg:github/hydro-sdk/hydro-sdk","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hydro-sdk%2Fhydro-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hydro-sdk%2Fhydro-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hydro-sdk%2Fhydro-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hydro-sdk%2Fhydro-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hydro-sdk","download_url":"https://codeload.github.com/hydro-sdk/hydro-sdk/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hydro-sdk%2Fhydro-sdk/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268222181,"owners_count":24215699,"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","status":"online","status_checked_at":"2025-08-01T02:00:08.611Z","response_time":67,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["android","codepush","dart","deliver-updates","flutter","hydro-sdk","ios","over-the-air","typescript"],"created_at":"2024-12-06T09:03:07.215Z","updated_at":"2026-04-03T21:27:57.064Z","avatar_url":"https://github.com/hydro-sdk.png","language":"Dart","funding_links":["https://opencollective.com/hydro-sdk","https://github.com/sponsors/hydro-sdk"],"categories":["Other Language Targets"],"sub_categories":[],"readme":"# Hydro-SDK\n![Logo](https://github.com/chgibb/hydro-sdk/blob/master/img/socialImage.png)\n\nAuthor Flutter experiences in Typescript. No native bridge, no V8. Just Dart. From runtime to virtual machine.\n\n# Sponsored by\nPossibly you! See [sponsoring Hydro-SDK](https://github.com/sponsors/hydro-sdk)\n# Documentation and Tutorials \nhttps://hydro-sdk.io/\n# Features\n## Hot Reload, Incremental Compilation\n![Action Gif](https://github.com/hydro-sdk/counter-app/blob/master/media/action-gif.gif)\n\n## Function Maps\n![Function maps screenshot](https://github.com/chgibb/hydro-sdk/blob/master/img/sourceMapScreenShot.png)\n\n# Roadmap\nHydro-SDK is a software development kit (SDK) enabling Flutter developers to write portions of their app (or their entire app) using Typescript. It is a project with one large, ambitious goal. \"Become React Native for Flutter\".\nIt aims to do that by:\n\n1. Decoupling the API surface of Flutter from the Dart programming language.\n2. Decoupling the development time experience of Flutter from the Dart programming language.\n3. Providing first-class support for over-the-air distribution of code.\n4. Providing an ecosystem of packages from pub.dev, automatically projected to supported languages and published to other package systems.\n\nHydro-SDK is currently only suitable for simple content. A few dozen Flutter widgets are supported. Content built with Hydro-SDK can be updated over the air using Hydro-SDK's built-in [codepush](https://hydro-sdk.io/blog/fluttering-over-the-air). Content can be authored in a similar manner as in Dart with hot-reload and limited IDE debugging support.\n\n## Near Term\n### API Support\nContinue expanding available Dart and Flutter APIs with automatic language projection (ALP) using [Structured Wrapper and Interface generator for Dart (SWID)](https://github.com/hydro-sdk/hydro-sdk/tree/master/lib/swid).  This effort is where the overwhelming amount of focus currently is. Having a stable and high quality ALP will allow for the re-use of existing packages from `pub.dev` in Typescript. This will also allow for expanding support for authoring Hydro-SDK content to other programming languages.\n\nThis work is tracked at a high-level in the [Binding Generator project](https://github.com/hydro-sdk/hydro-sdk/projects/5) and in other sub-projects.\nThis work is required to expand support for Flutter 2.8 (and 2.10) and is directly related to the following umbrella issues.\n- [☂️ Support Flutter 2.8](https://github.com/hydro-sdk/hydro-sdk/issues/773)\n- [☂️ Cables](https://github.com/hydro-sdk/hydro-sdk/issues/684)\n\n## Medium Term\n### Developer Ergonomics  \nImproving developer ergonomics with more affective testing workflows and support for Typescript language features like `async` / `await` interop with Dart.\nThis is being scoped and tracked at a high level in umbrella issues.\n- [☂️ Improved Test Ergonomics](https://github.com/hydro-sdk/hydro-sdk/issues/843)\n- [☂️ Typescript 4](https://github.com/hydro-sdk/hydro-sdk/issues/844)\n### Performance\nEstablishing performance baselines through benchmarking. Some efforts to improve performance. This is being scoped and tracked at a high level in umbrella issues.\n- [☂️ Optimizing Lua Compiler](https://github.com/hydro-sdk/hydro-sdk/issues/797)\n- [☂️ Size Benchmarks](https://github.com/hydro-sdk/hydro-sdk/issues/846)\n- [☂️ CPU and Memory Benchmarks](https://github.com/hydro-sdk/hydro-sdk/issues/845)\n\n## Long Term Projects\n## Developer Ergonomics\nLower the barrier to entry for developers with non-mobile backgrounds that are interested in trying out Flutter and Hydro-SDK.\n- [☂️ Component Preview](https://github.com/hydro-sdk/hydro-sdk/issues/763)\n## Services\n### Registry\nA closed-source component registry for first-class support for hosting and running over-the-air (OTA) update packages built using the open-source Hydro-SDK. This service is already live as a basic [MVP](https://registry.hydro-sdk.io/#/).\n\n### Registry Value Adds\nIn the future, building paid features such as targeted distribution, analytics, feature flagging and logging directly into Registry are expected to be a viable path to monetization.\n\n### Language Support\nHydro-SDK is language agnostic. In the future, it should be possible to support authoring content in other programming languages to attract users from other ecosystems (Flixel, .NET, Xamarin).\n### Tier 1 (hot-reload, programmatic debugging, function maps)\n- [\u0026check;] Typescript  \n    https://github.com/TypeScriptToLua/TypeScriptToLua\n### Tier 2 (hot-reload, programmatic debugging)\n- [ ] Haxe  \n    https://github.com/HaxeFoundation/haxe    \n- [ ] C#  \n    https://github.com/yanghuan/CSharp.lua \n\n# Prior Art for Common Flutter Runtime\n- Dartlua, Andre Lipke https://github.com/PixelToast/dartlua\n- React Native, Facebook https://reactnative.dev/\n- LuaViewSdk, Alibaba https://github.com/alibaba/LuaViewSDK\n- ILRuntime, Ourpalm https://github.com/Ourpalm/ILRuntime\n- Flutterscript, Charles Lowell https://github.com/cowboyd/flutterscript\n- Lisp in Dart, Suzuki Hisao https://github.com/nukata/lisp-in-dart\n- widget_extensions https://github.com/canewsin/widget_extensions\n- xamarin.flutter https://github.com/adamped/xamarin.flutter\n\n# Prior Art for Structured Wrapper and Interface generator for Dart\n- Dartle, https://docs.google.com/document/d/1Ei0ZIqdqNjxTHoGB3Ay6SWQg3DMSsKKWl70XoBUCFTA/edit\n- Pigeon, https://github.com/flutter/packages/tree/master/packages/pigeon\n- Djinni, https://github.com/dropbox/djinni\n- Uniffi-rs, https://github.com/mozilla/uniffi-rs\n- TS to CSharp, https://github.com/mono/TsToCSharp\n\n\n# Interesting Links and Resources\n- John C. Reynolds, Definitional Interpreters for Higher-Order Programming Languages https://surface.syr.edu/cgi/viewcontent.cgi?article=1012\u0026context=lcsmith_other\n- Andrey Mokhov, Neil Mitchell, Simon Peyton Jones, Build Systems a la carte: Theory and Practice https://www.cambridge.org/core/journals/journal-of-functional-programming/article/build-systems-a-la-carte-theory-and-practice/097CE52C750E69BD16B78C318754C7A4\n- Fabio Mascarenhas de Queiroz, Optimized Compilation of a Dynamic Language to a Managed Runtime Environment http://www.lua.inf.puc-rio.br/publications/mascarenhas09optimized.pdf\n- Michael Schroder, Optimizing Lua Using Run-time Type Specialization https://www.complang.tuwien.ac.at/anton/praktika-fertig/schroeder/thesis.pdf\n- Satoru Kawahara, Optimizing Lua VM Bytecode Using Global Dataflow Analysis https://nymphium.github.io/pdf/opeth_report.pdf\n- Haichuan Wang, Compiler and Runtime Techniques for Optimizing Dynamic Scripting Languages https://www.ideals.illinois.edu/bitstream/handle/2142/78638/WANG-DISSERTATION-2015.pdf?sequence=1\u0026isAllowed=y\n- Kevin Williams, Jason McCandless, David Gregg, Dynamic Interpretation for Dynamic Scripting Languages https://sites.cs.ucsb.edu/~ckrintz/papers/TCD-CS-2009-37.pdf\n- Dibyendu Majumdar, Ravi Lua 5.3 bytecode reference https://the-ravi-programming-language.readthedocs.io/en/latest/lua_bytecode_reference.html\n- Kein-Hong Man, A No-Frills Introduction to Lua 5.1 VM Instructions http://luaforge.net/docman/83/98/ANoFrillsIntroToLua51VMInstructions.pdf\n- Rust Programming Language Request for Comments 2603, Symbol Name Mangling https://github.com/rust-lang/rfcs/blob/master/text/2603-rust-symbol-name-mangling-v0.md\n- Itanium C++ Application Binary Interface Specification https://itanium-cxx-abi.github.io/cxx-abi/abi.html\n- Yan Dong Zonz, Wen Hui-chao, Exploration and practice of Flutter packet size management https://tech.meituan.com/2020/09/18/flutter-in-meituan.html\n- Shangxian, Meituan takeaway Flutter dynamic practice https://tech.meituan.com/2020/06/23/meituan-flutter-flap.html\n- Vyacheslav Egorov, 10 Years of Dart (Slides)\n    https://mrale.ph/talks/vmil2020/\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhydro-sdk%2Fhydro-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhydro-sdk%2Fhydro-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhydro-sdk%2Fhydro-sdk/lists"}