{"id":15510323,"url":"https://github.com/ananace/ruby-matrix-sdk","last_synced_at":"2025-04-06T05:17:21.080Z","repository":{"id":44440272,"uuid":"132171537","full_name":"ananace/ruby-matrix-sdk","owner":"ananace","description":"Ruby SDK for the Matrix communication protocol","archived":false,"fork":false,"pushed_at":"2024-09-24T07:14:00.000Z","size":975,"stargazers_count":85,"open_issues_count":4,"forks_count":10,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-27T14:12:52.688Z","etag":null,"topics":["matrix-protocol","ruby"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","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/ananace.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","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":"2018-05-04T17:46:13.000Z","updated_at":"2025-03-16T02:39:56.000Z","dependencies_parsed_at":"2024-06-19T04:01:57.786Z","dependency_job_id":"64858d65-b657-4f4d-a355-0241b7a5e727","html_url":"https://github.com/ananace/ruby-matrix-sdk","commit_stats":{"total_commits":747,"total_committers":9,"mean_commits":83.0,"dds":0.08299866131191436,"last_synced_commit":"a71c8ad9d2705c87a21fe1f010a2c4875f47bb47"},"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fruby-matrix-sdk","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fruby-matrix-sdk/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fruby-matrix-sdk/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ananace%2Fruby-matrix-sdk/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ananace","download_url":"https://codeload.github.com/ananace/ruby-matrix-sdk/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247436290,"owners_count":20938533,"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":["matrix-protocol","ruby"],"created_at":"2024-10-02T09:47:45.502Z","updated_at":"2025-04-06T05:17:21.059Z","avatar_url":"https://github.com/ananace.png","language":"Ruby","funding_links":["https://patreon.com/matrixdotorg"],"categories":["Bot SDKs"],"sub_categories":["Ruby"],"readme":"# Ruby Matrix SDK\n\nA Ruby gem for easing the development of software that communicates with servers implementing the Matrix protocol.\n\nThere is a Matrix room for the discussion about usage and development at [#ruby-matrix-sdk:kittenface.studio](https://matrix.to/#/#ruby-matrix-sdk:kittenface.studio).\n\nLive YARD documentation can be found at; https://ruby-sdk.ananace.dev\n\n## Example usage\n\nFor more fully-featured examples, check the [examples](examples/) folder.\n\n```ruby\n# Raw API usage\nrequire 'matrix_sdk'\n\napi = MatrixSdk::Api.new 'https://matrix.org'\n\napi.login user: 'example', password: 'notarealpass'\napi.whoami?\n# =\u003e {:user_id=\u003e\"@example:matrix.org\"}\n\n# It's possible to call arbitrary APIs as well\napi.request :get, :federation_v1, '/version'\n# =\u003e {:server=\u003e{:version=\u003e\"0.28.1\", :name=\u003e\"Synapse\"}}\n```\n\n```ruby\n# Client wrapper with login\nrequire 'matrix_sdk'\n\nclient = MatrixSdk::Client.new 'https://example.com'\nclient.login 'username', 'notarealpass' #, no_sync: true\n\nclient.rooms.count\n# =\u003e 5\nhq = client.find_room '#matrix:matrix.org'\n# =\u003e #\u003cMatrixSdk::Room:00005592a1161528 @id=\"!cURbafjkfsMDVwdRDQ:matrix.org\" @name=\"Matrix HQ\" @topic=\"The Official Matrix HQ - please come chat here! | To support Matrix.org development: https://patreon.com/matrixdotorg | Try http://riot.im/app for a glossy web client | Looking for homeserver hosting? Check out https://upcloud.com/matrix!\" @canonical_alias=\"#matrix:matrix.org\" @aliases=[\"#matrix:jda.mn\"] @join_rule=:public @guest_access=:can_join @event_history_limit=10\u003e\nhq.guest_access?\n# =\u003e true\nhq.send_text \"This is an example message - don't actually do this ;)\"\n# =\u003e {:event_id=\u003e\"$123457890abcdef:matrix.org\"}\n```\n\n```ruby\n# Client wrapper with token\nrequire 'matrix_sdk'\n\nclient = MatrixSdk::Client.new 'https://example.com'\nclient.api.access_token = 'thisisnotarealtoken'\n\n# Doesn't automatically trigger a sync when setting the token directly\nclient.rooms.count\n# =\u003e 0\n\nclient.sync\nclient.rooms.count\n# =\u003e 5\n```\n\n```ruby\n#!/bin/env ruby\n# Bot DSL\nrequire 'matrix_sdk/bot'\n\ncommand :plug do\n  room.send_text \u003c\u003c~PLUG\n    The Ruby SDK is a fine method for writing applications communicating over the Matrix protocol.\n    It can easily be integrated with Rails, and it supports most client/bot use-cases.\n  PLUG\nend\n```\n\n## Contributing\n\nBug reports and pull requests are welcome on GitHub at https://github.com/ananace/ruby-matrix-sdk\n\n\n## License\n\nThe gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananace%2Fruby-matrix-sdk","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fananace%2Fruby-matrix-sdk","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fananace%2Fruby-matrix-sdk/lists"}