{"id":19795096,"url":"https://github.com/embeddedenterprises/wuploader","last_synced_at":"2026-06-04T20:31:20.168Z","repository":{"id":57601127,"uuid":"146622313","full_name":"EmbeddedEnterprises/wuploader","owner":"EmbeddedEnterprises","description":"WAMP multipart file upload handler for golang","archived":false,"fork":false,"pushed_at":"2018-10-09T14:45:50.000Z","size":10,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-01-11T04:48:17.905Z","etag":null,"topics":["binary-data","file-upload","go","golang","messaging","microservice","service","wamp","wamp-client","wamp-protocol","websockets"],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/EmbeddedEnterprises.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-08-29T15:40:14.000Z","updated_at":"2019-03-19T16:12:15.000Z","dependencies_parsed_at":"2022-08-25T17:21:46.182Z","dependency_job_id":null,"html_url":"https://github.com/EmbeddedEnterprises/wuploader","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/EmbeddedEnterprises%2Fwuploader","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbeddedEnterprises%2Fwuploader/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbeddedEnterprises%2Fwuploader/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/EmbeddedEnterprises%2Fwuploader/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/EmbeddedEnterprises","download_url":"https://codeload.github.com/EmbeddedEnterprises/wuploader/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":241137074,"owners_count":19916047,"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":["binary-data","file-upload","go","golang","messaging","microservice","service","wamp","wamp-client","wamp-protocol","websockets"],"created_at":"2024-11-12T07:15:26.725Z","updated_at":"2026-06-04T20:31:20.160Z","avatar_url":"https://github.com/EmbeddedEnterprises.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wuploader\n\nwuploader is a file upload utility library for WAMP\nThis repository uses [nexus](github.com/gammazero/nexus) for WAMP client communication in golang.\n\nwuploader is designed to integrate itself into the [service](github.com/EmbeddedEnterprises/service) library but should work when you use pure nexus too.\n\n---\n\n# How it works\n\nYou pass an endpoint which should be a file upload to wuploader and it will register a handler providing high level abstractions for file uploads.\n\n# API Description\n\n`wuploader` defines one procedure with the name given to the API with a polymorphic signature.\nUploading is implemented in a transaction based model, which means that you have to start a transaction first:\n\n`endpoint('start', uploadSize) -\u003e transactionID: uint64`\n\nWhen starting a transaction, the endpoint may verify the uploader and the upload size and MAY reject the upload, otherwise a valid transaction ID is returned, which has to be specified for subsequent calls. After the transaction has been started, data can be uploaded like this:\n\n`endpoint('data', transactionID, data) -\u003e uploadPos: uint64`\n\nWhile uploading, the size of the data chunks may be varied, good sizes range from 32kB to 4MB, depending on the connection speed. After all data has been uploaded, the transaction has to be finished like this:\n\n`endpoint('finish', transactionID, args...) -\u003e result: any`\n\nFinish calls the underlying handler with a consistent binary representation of the uploaded content and forwards any arguments/results to the caller/callee.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedenterprises%2Fwuploader","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fembeddedenterprises%2Fwuploader","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fembeddedenterprises%2Fwuploader/lists"}