{"id":31287613,"url":"https://github.com/pangolinshell/myeasymf","last_synced_at":"2025-09-24T11:04:33.966Z","repository":{"id":315392523,"uuid":"1059347616","full_name":"pangolinshell/myeasymf","owner":"pangolinshell","description":"MyEasyMultipartFForm is a Go package that automatically decodes a multiparts forms  into a Go structure using field tags. ","archived":false,"fork":false,"pushed_at":"2025-09-18T11:17:02.000Z","size":9,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-09-18T11:31:59.986Z","etag":null,"topics":["golang","golang-package","http"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pangolinshell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-09-18T10:21:12.000Z","updated_at":"2025-09-18T10:30:43.000Z","dependencies_parsed_at":"2025-09-18T11:33:07.870Z","dependency_job_id":"b6265706-c5ba-4f1f-a180-9736b1dd2efc","html_url":"https://github.com/pangolinshell/myeasymf","commit_stats":null,"previous_names":["pangolinshell/myeasymf"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/pangolinshell/myeasymf","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pangolinshell%2Fmyeasymf","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pangolinshell%2Fmyeasymf/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pangolinshell%2Fmyeasymf/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pangolinshell%2Fmyeasymf/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pangolinshell","download_url":"https://codeload.github.com/pangolinshell/myeasymf/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pangolinshell%2Fmyeasymf/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276737524,"owners_count":25695700,"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","status":"online","status_checked_at":"2025-09-24T02:00:09.776Z","response_time":97,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["golang","golang-package","http"],"created_at":"2025-09-24T11:02:01.356Z","updated_at":"2025-09-24T11:04:33.961Z","avatar_url":"https://github.com/pangolinshell.png","language":"Go","readme":"# 📦 MyEasyMultipartForm – Automatic multipart form decoding for Go\n\nMyEasyMultipartForm is a Go package that **automatically decodes** a `multipart.Form` (such as from an `http.Request`) into a **Go struct** using field tags.  \nIt supports primitive types, pointers, slices, time values, and file uploads.\n\n---\n\n## ✨ Features\n\n- **Automatic decoding** of a multipart form into a Go struct.\n- **Tag-based mapping** from form keys to struct fields.\n- **Automatic type conversion** from `[]string` to Go types.\n- **Full support for pointers and slices**.\n- **Built-in support for `time.Time` and `*time.Time` (RFC3339 format)**.\n- **File support** via `*multipart.FileHeader` and `[]*multipart.FileHeader`.\n\n---\n\n## 📝 Installation\n\n```bash\ngo get github.com/pangolinshell/myeasymf\n```\n---\n\n## 🚀 Basic Usage\n\n1. Define your struct with `form` tags (you can change the tag by modifing the `Tag` variable )\n```golang \ntype Testing struct {\n    Integer int                     `form:\"integer\"`\n    Float   float32                 `form:\"float\"`\n    Text    string                  `form:\"text\"`\n    When    *time.Time              `form:\"when\"`\n    Names   []string                `form:\"names\"`\n    Files   []*multipart.FileHeader `form:\"files\"`\n}\n```\n1. Use the decoder in your handler\n\n```golang\nfunc index(w http.ResponseWriter, r *http.Request) {\n    err := r.ParseMultipartForm(10 \u003c\u003c 20) // 10 MB max memory\n    if err != nil {\n        http.Error(w, err.Error(), http.StatusBadRequest)\n        return\n    }\n\n    var dst Testing\n    decoder := myeasyform.NewDecoder()\n\n    err = decoder.Decode(\u0026dst, r.MultipartForm)\n    if err != nil {\n        http.Error(w, err.Error(), http.StatusBadRequest)\n        return\n    }\n\n    fmt.Fprintf(w, \"Decoded struct: %+v\", dst)\n}\n```\n\n## 📜 License\nMIT License © 2025 Pangolin's_Shell","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpangolinshell%2Fmyeasymf","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpangolinshell%2Fmyeasymf","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpangolinshell%2Fmyeasymf/lists"}