{"id":13571490,"url":"https://github.com/gorilla/feeds","last_synced_at":"2025-10-23T17:24:14.376Z","repository":{"id":6396580,"uuid":"7634568","full_name":"gorilla/feeds","owner":"gorilla","description":"Package gorilla/feeds is a golang rss/atom generator library","archived":false,"fork":false,"pushed_at":"2024-06-17T10:41:56.000Z","size":89,"stargazers_count":744,"open_issues_count":0,"forks_count":149,"subscribers_count":24,"default_branch":"main","last_synced_at":"2024-11-17T12:45:32.923Z","etag":null,"topics":["atom","feeds","go","golang","gorilla","gorilla-web-toolkit","rss"],"latest_commit_sha":null,"homepage":"https://gorilla.github.io","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/gorilla.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2013-01-15T22:27:09.000Z","updated_at":"2024-11-15T10:49:12.000Z","dependencies_parsed_at":"2023-01-13T13:59:36.203Z","dependency_job_id":"bd80c5ae-c797-4661-b897-07568596c061","html_url":"https://github.com/gorilla/feeds","commit_stats":{"total_commits":91,"total_committers":29,"mean_commits":"3.1379310344827585","dds":0.7362637362637363,"last_synced_commit":"b60f215f72c708b0800622c804167bea85539ea5"},"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gorilla%2Ffeeds","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gorilla%2Ffeeds/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gorilla%2Ffeeds/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gorilla%2Ffeeds/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gorilla","download_url":"https://codeload.github.com/gorilla/feeds/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247147157,"owners_count":20891635,"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":["atom","feeds","go","golang","gorilla","gorilla-web-toolkit","rss"],"created_at":"2024-08-01T14:01:02.453Z","updated_at":"2025-10-23T17:24:14.313Z","avatar_url":"https://github.com/gorilla.png","language":"Go","funding_links":[],"categories":["开源类库","Go","Open source library"],"sub_categories":["文本处理","Word Processing"],"readme":"## gorilla/feeds\n![testing](https://github.com/gorilla/feeds/actions/workflows/test.yml/badge.svg)\n[![codecov](https://codecov.io/github/gorilla/feeds/branch/main/graph/badge.svg)](https://codecov.io/github/gorilla/feeds)\n[![godoc](https://godoc.org/github.com/gorilla/feeds?status.svg)](https://godoc.org/github.com/gorilla/feeds)\n[![sourcegraph](https://sourcegraph.com/github.com/gorilla/feeds/-/badge.svg)](https://sourcegraph.com/github.com/gorilla/feeds?badge)\n\n![Gorilla Logo](https://github.com/gorilla/.github/assets/53367916/d92caabf-98e0-473e-bfbf-ab554ba435e5)\n\nfeeds is a web feed generator library for generating RSS, Atom and JSON feeds from Go\napplications.\n\n### Goals\n\n * Provide a simple interface to create both Atom \u0026 RSS 2.0 feeds\n * Full support for [Atom][atom], [RSS 2.0][rss], and [JSON Feed Version 1][jsonfeed] spec elements\n * Ability to modify particulars for each spec\n\n[atom]: https://tools.ietf.org/html/rfc4287\n[rss]: http://www.rssboard.org/rss-specification\n[jsonfeed]: https://jsonfeed.org/version/1.1\n\n### Usage\n\n```go\npackage main\n\nimport (\n    \"fmt\"\n    \"log\"\n    \"time\"\n    \"github.com/gorilla/feeds\"\n)\n\nfunc main() {\n    now := time.Now()\n    feed := \u0026feeds.Feed{\n        Title:       \"jmoiron.net blog\",\n        Link:        \u0026feeds.Link{Href: \"http://jmoiron.net/blog\"},\n        Description: \"discussion about tech, footie, photos\",\n        Author:      \u0026feeds.Author{Name: \"Jason Moiron\", Email: \"jmoiron@jmoiron.net\"},\n        Created:     now,\n    }\n\n    feed.Items = []*feeds.Item{\n        \u0026feeds.Item{\n            Title:       \"Limiting Concurrency in Go\",\n            Link:        \u0026feeds.Link{Href: \"http://jmoiron.net/blog/limiting-concurrency-in-go/\"},\n            Description: \"A discussion on controlled parallelism in golang\",\n            Author:      \u0026feeds.Author{Name: \"Jason Moiron\", Email: \"jmoiron@jmoiron.net\"},\n            Created:     now,\n        },\n        \u0026feeds.Item{\n            Title:       \"Logic-less Template Redux\",\n            Link:        \u0026feeds.Link{Href: \"http://jmoiron.net/blog/logicless-template-redux/\"},\n            Description: \"More thoughts on logicless templates\",\n            Created:     now,\n        },\n        \u0026feeds.Item{\n            Title:       \"Idiomatic Code Reuse in Go\",\n            Link:        \u0026feeds.Link{Href: \"http://jmoiron.net/blog/idiomatic-code-reuse-in-go/\"},\n            Description: \"How to use interfaces \u003cem\u003eeffectively\u003c/em\u003e\",\n            Created:     now,\n        },\n    }\n\n    atom, err := feed.ToAtom()\n    if err != nil {\n        log.Fatal(err)\n    }\n\n    rss, err := feed.ToRss()\n    if err != nil {\n        log.Fatal(err)\n    }\n\n    json, err := feed.ToJSON()\n    if err != nil {\n        log.Fatal(err)\n    }\n\n    fmt.Println(atom, \"\\n\", rss, \"\\n\", json)\n}\n```\n\nOutputs:\n\n```xml\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003cfeed xmlns=\"http://www.w3.org/2005/Atom\"\u003e\n  \u003ctitle\u003ejmoiron.net blog\u003c/title\u003e\n  \u003clink href=\"http://jmoiron.net/blog\"\u003e\u003c/link\u003e\n  \u003cid\u003ehttp://jmoiron.net/blog\u003c/id\u003e\n  \u003cupdated\u003e2013-01-16T03:26:01-05:00\u003c/updated\u003e\n  \u003csummary\u003ediscussion about tech, footie, photos\u003c/summary\u003e\n  \u003centry\u003e\n    \u003ctitle\u003eLimiting Concurrency in Go\u003c/title\u003e\n    \u003clink href=\"http://jmoiron.net/blog/limiting-concurrency-in-go/\"\u003e\u003c/link\u003e\n    \u003cupdated\u003e2013-01-16T03:26:01-05:00\u003c/updated\u003e\n    \u003cid\u003etag:jmoiron.net,2013-01-16:/blog/limiting-concurrency-in-go/\u003c/id\u003e\n    \u003csummary type=\"html\"\u003eA discussion on controlled parallelism in golang\u003c/summary\u003e\n    \u003cauthor\u003e\n      \u003cname\u003eJason Moiron\u003c/name\u003e\n      \u003cemail\u003ejmoiron@jmoiron.net\u003c/email\u003e\n    \u003c/author\u003e\n  \u003c/entry\u003e\n  \u003centry\u003e\n    \u003ctitle\u003eLogic-less Template Redux\u003c/title\u003e\n    \u003clink href=\"http://jmoiron.net/blog/logicless-template-redux/\"\u003e\u003c/link\u003e\n    \u003cupdated\u003e2013-01-16T03:26:01-05:00\u003c/updated\u003e\n    \u003cid\u003etag:jmoiron.net,2013-01-16:/blog/logicless-template-redux/\u003c/id\u003e\n    \u003csummary type=\"html\"\u003eMore thoughts on logicless templates\u003c/summary\u003e\n    \u003cauthor\u003e\u003c/author\u003e\n  \u003c/entry\u003e\n  \u003centry\u003e\n    \u003ctitle\u003eIdiomatic Code Reuse in Go\u003c/title\u003e\n    \u003clink href=\"http://jmoiron.net/blog/idiomatic-code-reuse-in-go/\"\u003e\u003c/link\u003e\n    \u003cupdated\u003e2013-01-16T03:26:01-05:00\u003c/updated\u003e\n    \u003cid\u003etag:jmoiron.net,2013-01-16:/blog/idiomatic-code-reuse-in-go/\u003c/id\u003e\n    \u003csummary type=\"html\"\u003eHow to use interfaces \u0026lt;em\u0026gt;effectively\u0026lt;/em\u0026gt;\u003c/summary\u003e\n    \u003cauthor\u003e\u003c/author\u003e\n  \u003c/entry\u003e\n\u003c/feed\u003e\n\n\u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n\u003crss version=\"2.0\"\u003e\n  \u003cchannel\u003e\n    \u003ctitle\u003ejmoiron.net blog\u003c/title\u003e\n    \u003clink\u003ehttp://jmoiron.net/blog\u003c/link\u003e\n    \u003cdescription\u003ediscussion about tech, footie, photos\u003c/description\u003e\n    \u003cmanagingEditor\u003ejmoiron@jmoiron.net (Jason Moiron)\u003c/managingEditor\u003e\n    \u003cpubDate\u003e2013-01-16T03:22:24-05:00\u003c/pubDate\u003e\n    \u003citem\u003e\n      \u003ctitle\u003eLimiting Concurrency in Go\u003c/title\u003e\n      \u003clink\u003ehttp://jmoiron.net/blog/limiting-concurrency-in-go/\u003c/link\u003e\n      \u003cdescription\u003eA discussion on controlled parallelism in golang\u003c/description\u003e\n      \u003cpubDate\u003e2013-01-16T03:22:24-05:00\u003c/pubDate\u003e\n    \u003c/item\u003e\n    \u003citem\u003e\n      \u003ctitle\u003eLogic-less Template Redux\u003c/title\u003e\n      \u003clink\u003ehttp://jmoiron.net/blog/logicless-template-redux/\u003c/link\u003e\n      \u003cdescription\u003eMore thoughts on logicless templates\u003c/description\u003e\n      \u003cpubDate\u003e2013-01-16T03:22:24-05:00\u003c/pubDate\u003e\n    \u003c/item\u003e\n    \u003citem\u003e\n      \u003ctitle\u003eIdiomatic Code Reuse in Go\u003c/title\u003e\n      \u003clink\u003ehttp://jmoiron.net/blog/idiomatic-code-reuse-in-go/\u003c/link\u003e\n      \u003cdescription\u003eHow to use interfaces \u0026lt;em\u0026gt;effectively\u0026lt;/em\u0026gt;\u003c/description\u003e\n      \u003cpubDate\u003e2013-01-16T03:22:24-05:00\u003c/pubDate\u003e\n    \u003c/item\u003e\n  \u003c/channel\u003e\n\u003c/rss\u003e\n\n{\n  \"version\": \"https://jsonfeed.org/version/1.1\",\n  \"title\": \"jmoiron.net blog\",\n  \"home_page_url\": \"http://jmoiron.net/blog\",\n  \"description\": \"discussion about tech, footie, photos\",\n  \"author\": {\n    \"name\": \"Jason Moiron\"\n  },\n  \"authors\": [\n    {\n      \"name\": \"Jason Moiron\"\n    }\n  ],\n  \"items\": [\n    {\n      \"id\": \"\",\n      \"url\": \"http://jmoiron.net/blog/limiting-concurrency-in-go/\",\n      \"title\": \"Limiting Concurrency in Go\",\n      \"summary\": \"A discussion on controlled parallelism in golang\",\n      \"date_published\": \"2013-01-16T03:22:24.530817846-05:00\",\n      \"author\": {\n        \"name\": \"Jason Moiron\"\n      },\n      \"authors\": [\n        {\n          \"name\": \"Jason Moiron\"\n        }\n      ]\n    },\n    {\n      \"id\": \"\",\n      \"url\": \"http://jmoiron.net/blog/logicless-template-redux/\",\n      \"title\": \"Logic-less Template Redux\",\n      \"summary\": \"More thoughts on logicless templates\",\n      \"date_published\": \"2013-01-16T03:22:24.530817846-05:00\"\n    },\n    {\n      \"id\": \"\",\n      \"url\": \"http://jmoiron.net/blog/idiomatic-code-reuse-in-go/\",\n      \"title\": \"Idiomatic Code Reuse in Go\",\n      \"summary\": \"How to use interfaces \\u003cem\\u003eeffectively\\u003c/em\\u003e\",\n      \"date_published\": \"2013-01-16T03:22:24.530817846-05:00\"\n    }\n  ]\n}\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgorilla%2Ffeeds","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgorilla%2Ffeeds","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgorilla%2Ffeeds/lists"}