{"id":19197533,"url":"https://github.com/rikulo/ripple","last_synced_at":"2025-05-09T00:44:40.570Z","repository":{"id":9932015,"uuid":"11946081","full_name":"rikulo/ripple","owner":"rikulo","description":"Lightweight Dart messaging server; supporting STOMP messaging protocol.","archived":false,"fork":false,"pushed_at":"2013-11-05T07:19:03.000Z","size":196,"stargazers_count":11,"open_issues_count":0,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-09T00:44:34.665Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://rikulo.org","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rikulo.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":"2013-08-07T09:19:19.000Z","updated_at":"2021-12-13T10:07:46.000Z","dependencies_parsed_at":"2022-09-14T05:11:38.574Z","dependency_job_id":null,"html_url":"https://github.com/rikulo/ripple","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rikulo%2Fripple","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rikulo%2Fripple/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rikulo%2Fripple/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rikulo%2Fripple/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rikulo","download_url":"https://codeload.github.com/rikulo/ripple/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253171212,"owners_count":21865283,"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-09T12:17:13.472Z","updated_at":"2025-05-09T00:44:40.551Z","avatar_url":"https://github.com/rikulo.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"#Ripple\n\nLightweight Dart messaging server; supporting [STOMP](http://stomp.github.io/) messaging protocol.\n\n* [Home](http://rikulo.org)\n* [API Reference](http://api.rikulo.org/ripple/latest)\n* [Discussion](http://stackoverflow.com/questions/tagged/rikulo)\n* [Git Repository](https://github.com/rikulo/ripple)\n* [Issues](https://github.com/rikulo/ripple/issues)\n\n\u003e See also [Stomp Dart Client](https://github.com/rikulo/stomp).\n\n[![Build Status](https://drone.io/github.com/rikulo/ripple/status.png)](https://drone.io/github.com/rikulo/ripple/latest)\n\n##Installation\n\nAdd this to your `pubspec.yaml` (or create it):\n\n    dependencies:\n      ripple:\n\nThen run the [Pub Package Manager](http://pub.dartlang.org/doc) (comes with the Dart SDK):\n\n    pub install\n\n##Usage\n\nFirst, you have to import:\n\n    import \"package:ripple/ripple.dart\";\n\nThen, you can start Ripple server by binding it to any number of Internet addresses and ports.\n\n    new RippleServer()\n      ..start() //bind to port 61626\n      ..startSecure(); //bind to port 61627 and using SSL\n\n\u003e For how to use a STOMP client to access Ripple server, please refer to [STOMP Dart Client](https://github.com/rikulo/stomp).\n\n###WebSocket\n\nYou can have Ripple server to serve a WebSocket connection. For example,\n\n    HttpServer httpServer;\n    RippleServer rippleServer;\n    ...\n    httpServer.listen((request) {\n      if (...) { //usually test request.uri to see if it is mapped to WebSocket\n        WebSocketTransformer.upgrade(request).then((WebSocket webSocket) {\n          rippleServer.serveWebSocket(webSocket);\n        }).catchError((ex) {\n          // Handle error\n        });\n      } else {\n        // Do normal HTTP request processing.\n      }\n    });\n\n##Limitations\n\n* Support STOMP 1.2 or above\n* Support UTF-8 encoding\n\n##Incompleteness\n\n* Transaction not supported.\n* Heart beat not supported.\n* ACK and NACK not supported.\n\n##Potential Enhancement\n\n* Support subscribeBlob() better. Currently, messages will be held in the memory before sending to subscribers. It could be an issue if the message is huge.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frikulo%2Fripple","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frikulo%2Fripple","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frikulo%2Fripple/lists"}