{"id":13394374,"url":"https://github.com/rethinkdb/horizon","last_synced_at":"2025-05-14T11:08:05.621Z","repository":{"id":47298105,"uuid":"45091124","full_name":"rethinkdb/horizon","owner":"rethinkdb","description":"Horizon is a realtime, open-source backend for JavaScript apps.","archived":false,"fork":false,"pushed_at":"2025-01-01T08:54:28.000Z","size":9045,"stargazers_count":6768,"open_issues_count":218,"forks_count":349,"subscribers_count":361,"default_branch":"next","last_synced_at":"2025-05-07T10:52:32.910Z","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":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rethinkdb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"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}},"created_at":"2015-10-28T05:33:14.000Z","updated_at":"2025-05-03T05:58:30.000Z","dependencies_parsed_at":"2025-04-13T06:13:42.314Z","dependency_job_id":"94006029-9932-4972-838f-b0b784477430","html_url":"https://github.com/rethinkdb/horizon","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rethinkdb%2Fhorizon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rethinkdb%2Fhorizon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rethinkdb%2Fhorizon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rethinkdb%2Fhorizon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rethinkdb","download_url":"https://codeload.github.com/rethinkdb/horizon/tar.gz/refs/heads/next","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254129480,"owners_count":22019628,"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-07-30T17:01:17.455Z","updated_at":"2025-05-14T11:08:05.580Z","avatar_url":"https://github.com/rethinkdb.png","language":"JavaScript","readme":"\u003cimg style=\"width:100%;\" src=\"/github-banner.png\"\u003e\n\n# Horizon\n\n[Official Repository](https://github.com/rethinkdb/horizon)\n\n## What is Horizon?\n\nHorizon is an open-source developer platform for building sophisticated realtime\napps. It provides a complete backend that makes it dramatically simpler to\nbuild, deploy, manage, and scale engaging JavaScript web and mobile apps.\nHorizon is extensible, integrates with the Node.js stack, and allows building\nmodern, arbitrarily complex applications.\n\nHorizon is built on top of [RethinkDB](https://www.rethinkdb.com) and consists of\nfour components:\n\n- [__Horizon server__](/server) -- a middleware server that connects to/is built on\n  top of RethinkDB, and exposes a simple API/protocol to front-end\n  applications.\n- [__Horizon client library__](/client) -- a JavaScript client library that wraps\n  Horizon server's protocol in a convenient API for front-end\n  developers.\n- [__Horizon CLI - `hz`__](/cli) -- a command-line tool aiding in scaffolding, development, and deployment\n- [__GraphQL support__](https://github.com/rethinkdb/horizon/issues/125) -- the server will have a GraphQL adapter so anyone can get started building React/Relay apps without writing any backend code at the beginning. This will not ship in v1, but we'll follow up with a GraphQL adapter quickly after launch.\n\nHorizon currently has all the following services available to developers:\n\n- ✅ __Subscribe__ -- a streaming API for building realtime apps directly from the\n  browser without writing any backend code.\n- ✅ __Auth__ -- an authentication API that connects to common auth providers\n  (e.g. Facebook, Google, GitHub).\n- ✅ __Identity__ -- an API for listing and manipulating user accounts.\n- ✅ __Permissions__ -- a security model that allows the developer to protect\n   data from unauthorized access.\n\nUpcoming versions of Horizon will likely expose the following\nadditional services:\n\n- __Session management__ -- manage browser session and session\n  information.\n- __Geolocation__ -- an API that makes it very easy to build\n  location-aware apps.\n- __Presence__ -- an API for detecting presence information for a given\n  user and sharing it with others.\n- __Plugins__ -- a system for extending Horizon with user-defined services\n  in a consistent, discoverable way.\n- __Backend__ -- an API/protocol to integrate custom backend code with\n  Horizon server/client-libraries.\n\n## Why Horizon?\n\nWhile technologies like [RethinkDB](http://www.rethinkdb.com) and\n[WebSocket](https://en.wikipedia.org/wiki/WebSocket) make it possible to build\nengaging realtime apps, empirically there is still too much friction for most\ndevelopers. Building realtime apps now requires understanding and manually\norchestrating multiple systems across the software stack, understanding\ndistributed stream processing, and learning how to deploy and scale realtime systems. The\nlearning curve is quite steep, and most of the initial work involves boilerplate\ncode that is far removed from the primary task of building a realtime app.\n\nHorizon sets out to solve this problem. Developers can start building\napps using their favorite front-end framework using Horizon's APIs\nwithout having to write any backend code.\n\nSince Horizon stores data in RethinkDB, once the app gets sufficiently\ncomplex to need custom business logic on the backend, developers can\nincrementally add backend code at any time in the development cycle of\ntheir app.\n\n## Get Involved\n\nWe'd love for you to help us build Horizon. If you'd like to be a contributor,\ncheck out our [Contributing guide](/CONTRIBUTING.md).\n\nAlso, to stay up-to-date on all Horizon related news and the community you should\ndefinitely [join us on Slack](http://slack.rethinkdb.com) or [follow us on Twitter](https://twitter.com/horizonjs).\n\n![](/assets/Lets-go.png)\n\n## FAQ\n\nCheck out our FAQ at [horizon.io/faq](https://horizon.io/faq/)\n\n### How will Horizon be licensed?\n\nThe Horizon server, client and cli are available under the MIT license\n","funding_links":[],"categories":["JavaScript","⚙️ Backend \u0026 APIs","others","目录"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frethinkdb%2Fhorizon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frethinkdb%2Fhorizon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frethinkdb%2Fhorizon/lists"}