{"id":13453255,"url":"https://github.com/chromium/ballista","last_synced_at":"2025-10-03T20:31:38.494Z","repository":{"id":66529131,"uuid":"42987309","full_name":"chromium/ballista","owner":"chromium","description":"An interoperability system for the modern web.","archived":true,"fork":false,"pushed_at":"2020-09-24T09:59:38.000Z","size":970,"stargazers_count":535,"open_issues_count":4,"forks_count":44,"subscribers_count":40,"default_branch":"master","last_synced_at":"2024-09-28T17:40:55.723Z","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":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/chromium.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}},"created_at":"2015-09-23T08:08:31.000Z","updated_at":"2024-07-25T15:10:08.000Z","dependencies_parsed_at":"2023-03-11T00:02:34.875Z","dependency_job_id":null,"html_url":"https://github.com/chromium/ballista","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/chromium%2Fballista","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromium%2Fballista/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromium%2Fballista/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/chromium%2Fballista/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/chromium","download_url":"https://codeload.github.com/chromium/ballista/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235184287,"owners_count":18949251,"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-31T08:00:36.729Z","updated_at":"2025-10-03T20:31:33.200Z","avatar_url":"https://github.com/chromium.png","language":"JavaScript","funding_links":[],"categories":["JavaScript","others"],"sub_categories":[],"readme":"# Ballista\n\n**Date**: 2015-09-25\n**Updated**: 2019-11-08\n\n![A ballista](docs/images/ballista-300.png)\n\n**Ballista** was a project to explore inter-website and web/native\ncommunication; specifically, communication between one website and another site\nor native app of the user's choosing. We explored ways for the user to be able\nto *share* or *edit* documents in another website or app that the first website\nhas never even heard of, *choose* documents from another website, or register a\nwebsite as a *native file handler*. We were attempting to solve similar problems\nto the intents system on Android, but also address other use cases like document\nediting. Essentially, we set out to create an **interoperability system for the\nweb**.\n\nOur [explainer document](docs/explainer.md) dives deeper into the problem space\nand outlines our early draft of an API that we thought solved this problem. But\nthis was less about proposing an API, and more about starting a conversation.\n\nEpilogue (2019): The Ballista project started in 2015 as an ambitious\nexploration of the above concepts. The project evolved into a number of more\nspecialized and smaller proposals to achieve these goals, several of which are\nnow generally available. These include [Web\nShare](https://github.com/w3c/web-share), [Web Share\nTarget](https://github.com/WICG/web-share-target) and [File\nHandling](https://github.com/WICG/file-handling).\n\n## Spin-off proposals\n\nThese standards-track proposals were created as a result of the explorations\nbegun in the Ballista project:\n\n* [Web Share](https://github.com/w3c/web-share).\n* [Web Share Target](https://github.com/WICG/web-share-target).\n* [File Handling](https://github.com/WICG/file-handling).\n\n## Demo\n\nWe have a prototype that works in Chrome and Firefox. Try this:\n\n1. Go to\n   [handler-dot-chromium-ballista.appspot.com](https://handler-dot-chromium-ballista.appspot.com)\n   (Ballista Editor Demo), and click \"OK\" to register it as an action handler.\n2. Go to\n   [requester-dot-chromium-ballista.appspot.com](https://requester-dot-chromium-ballista.appspot.com)\n   (Ballista Cloud Demo), and open a file with \"Ballista Editor Demo\".\n\nThese two apps don't know about each other, yet the editor can edit files from\nthe cloud app. Using our polyfill, you can write a web app that interoperates\nwith our demo apps in the same way.\n\nYou can view and manage app registrations at\n[chromium-ballista.appspot.com](https://chromium-ballista.appspot.com). In the\nfinal product, the registration, picking and management UI would be part of the\nbrowser.\n\n## Resources\n\n* For a detailed overview, see [Ballista Explained](docs/explainer.md).\n* In the [`polyfill`](polyfill) directory, there is a polyfill that you can use\n  to write a requester that can fire actions at any handler, or a handler that\n  can receive actions from any requester.\n* The [`handler`](handler) and [`requester`](requester) directories contain the\n  source code for the demo apps described above.\n\nSee the `README.md` file in each directory for details. Many caveats apply.\n\n## Who is behind Ballista?\n\nThe Google Chrome team, including:\n\n* Matt Giuca \u003c\u003cmgiuca@chromium.org\u003e\u003e\n* Sam McNally \u003c\u003csammc@chromium.org\u003e\u003e\n* Ben Wells \u003c\u003cbenwells@chromium.org\u003e\u003e\n\nThis is not an official Google product (experimental or otherwise), it is just\ncode that happens to be owned by Google.\n\nCopyright 2016 Google Inc. All Rights Reserved.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n\u003e \u003chttp://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchromium%2Fballista","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fchromium%2Fballista","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fchromium%2Fballista/lists"}