{"id":27205915,"url":"https://github.com/kamuridesu/shimarin","last_synced_at":"2026-02-21T10:01:14.411Z","repository":{"id":160669456,"uuid":"635509919","full_name":"kamuridesu/Shimarin","owner":"kamuridesu","description":"Asynchronous event-based communication between client and server.","archived":false,"fork":false,"pushed_at":"2025-04-03T15:19:14.000Z","size":62,"stargazers_count":0,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-08-26T12:47:17.236Z","etag":null,"topics":["async","client","event","event-based","python","server"],"latest_commit_sha":null,"homepage":"","language":"Python","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/kamuridesu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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}},"created_at":"2023-05-02T21:11:59.000Z","updated_at":"2025-04-03T15:19:17.000Z","dependencies_parsed_at":"2024-06-03T22:38:16.161Z","dependency_job_id":"fa747346-9f7c-440a-8632-a90c20d34817","html_url":"https://github.com/kamuridesu/Shimarin","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/kamuridesu/Shimarin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamuridesu%2FShimarin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamuridesu%2FShimarin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamuridesu%2FShimarin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamuridesu%2FShimarin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kamuridesu","download_url":"https://codeload.github.com/kamuridesu/Shimarin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kamuridesu%2FShimarin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29679049,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-21T09:33:50.764Z","status":"ssl_error","status_checked_at":"2026-02-21T09:33:19.949Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["async","client","event","event-based","python","server"],"created_at":"2025-04-09T23:03:17.366Z","updated_at":"2026-02-21T10:01:14.400Z","avatar_url":"https://github.com/kamuridesu.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Shimarin\n\nAsynchronous event-based communication between client and server.\n\n\n# How to use\n\nExamples are in example folder\n\n\n# RESTful interface\n\nIn order to communicate, this lib uses REST requests.\nTo fetch events, the client sends a GET request to the route /events?fetch=n, where fetch is the number of events to fetch. The response is a json array containing a number of events less than or equals the fetch number. For example, /events?fetch=5 fetch the first 5 events.\n\nThe callback route is defined by /callback and receives a POST request with a header \"X-Identifier\" containing the event uuid. The body of the request contains data to be used by a user-defined callback function.\n\nYou can also setup middlewares for data persistence. See the implementation for SQLite Persistent Middleware.\n\nIf you want to use the Flask plugin, just import ShimaApp. It is an instance of a Flask Blueprint so you can just register it in your Flask App.\n\n# Install\n\n```\npip install Shimarin\nof \npip install Shimarin[flask]\n```\n\n# Known bugs\n\n- Return type for event trigger is Any because when fetching events it returns `Event[Unknown]` and I could not cast the return type of the callback function to the fetched event. You can always annotate the handler function to retuen the right type. Right now the return type for the Event is Any.\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"https://count.kamuridesu.com?username=shimarin\" alt=\"count\"/\u003e\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamuridesu%2Fshimarin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkamuridesu%2Fshimarin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkamuridesu%2Fshimarin/lists"}