{"id":16340853,"url":"https://github.com/casey/worm","last_synced_at":"2025-08-06T10:33:05.876Z","repository":{"id":20571037,"uuid":"23851389","full_name":"casey/worm","owner":"casey","description":"Write once read many key value storage service","archived":false,"fork":false,"pushed_at":"2014-10-04T11:43:12.000Z","size":216,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-14T01:18:27.049Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","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/casey.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2014-09-09T21:46:28.000Z","updated_at":"2016-10-11T19:02:31.000Z","dependencies_parsed_at":"2022-09-06T02:21:24.966Z","dependency_job_id":null,"html_url":"https://github.com/casey/worm","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/casey%2Fworm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casey%2Fworm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casey%2Fworm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/casey%2Fworm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/casey","download_url":"https://codeload.github.com/casey/worm/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239441677,"owners_count":19639122,"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-10-10T23:58:02.930Z","updated_at":"2025-02-18T08:47:01.328Z","avatar_url":"https://github.com/casey.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"WORM\n====\n\nWrite once read many key value storage service\n\n[Test instance here.](http://rodarmor-worm.appspot.com)\n\n\nAPI\n---\n\nKEYs match `/[a-zA-Z0-9.-_]+/`.\n\n* `PUT /KEY` -\u003e Associates KEY with data in request. Puts after the first will be ignored.\n* `GET /KEY` -\u003e  Returns the data associated with KEY.\n\n```\n\u003e curl -X PUT http://rodarmor-worm.appspot.com/hello --data 'bob'\nbob\n\u003e curl -X PUT http://rodarmor-worm.appspot.com/hello --data 'frank'\n403 Forbidden\n\u003e curl -X GET http://rodarmor-worm.appspot.com/hello\nbob\n```\n\nAbout\n-----\n\nKEYs can be any length, but data is limited to 64 bytes just to avoid too much spam in the test instance datastore.\n\nThe sha256 hash of KEYs are used as datastore string IDs, instead of the KEY itself. This allows keys to be arbitrarily long, since they aren't actually stored in the datastore. Also, this lessens the severity of a [potential attack vector](http://ikaisays.com/2011/01/25/app-engine-datastore-tip-monotonically-increasing-values-are-bad/).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasey%2Fworm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcasey%2Fworm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcasey%2Fworm/lists"}