{"id":18483731,"url":"https://github.com/ouattararomuald/syndication","last_synced_at":"2025-04-08T18:32:47.695Z","repository":{"id":57728204,"uuid":"162874950","full_name":"ouattararomuald/syndication","owner":"ouattararomuald","description":"A Kotlin library for reading RSS 2.0 and ATOM 1.0 syndication feeds.","archived":false,"fork":false,"pushed_at":"2021-05-30T15:19:15.000Z","size":208,"stargazers_count":56,"open_issues_count":1,"forks_count":3,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-03-23T17:12:38.699Z","etag":null,"topics":["atom-feed","kotlin","rss-feed","syndication","syndication-feed"],"latest_commit_sha":null,"homepage":"","language":"Java","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/ouattararomuald.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2018-12-23T08:35:34.000Z","updated_at":"2024-10-02T13:57:27.000Z","dependencies_parsed_at":"2022-09-26T22:00:24.638Z","dependency_job_id":null,"html_url":"https://github.com/ouattararomuald/syndication","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouattararomuald%2Fsyndication","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouattararomuald%2Fsyndication/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouattararomuald%2Fsyndication/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ouattararomuald%2Fsyndication/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ouattararomuald","download_url":"https://codeload.github.com/ouattararomuald/syndication/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247902601,"owners_count":21015476,"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-feed","kotlin","rss-feed","syndication","syndication-feed"],"created_at":"2024-11-06T12:37:04.546Z","updated_at":"2025-04-08T18:32:42.686Z","avatar_url":"https://github.com/ouattararomuald.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://travis-ci.com/ouattararomuald/syndication.svg?token=b2y5CmmzwDUtNkj65irb\u0026branch=master)](https://travis-ci.com/ouattararomuald/syndication)\n[![](https://img.shields.io/badge/code--style-square-green.svg)](https://github.com/square/java-code-styles)\n[![](https://img.shields.io/maven-central/v/com.ouattararomuald/syndication.svg)](https://search.maven.org/search?q=g:com.ouattararomuald%20a:syndication)\n[![](https://img.shields.io/nexus/s/https/oss.sonatype.org/com.ouattararomuald/syndication.svg)](https://oss.sonatype.org/content/repositories/snapshots/)\n\n# Syndication feed\n\nA Kotlin library for reading RSS 2.0 and ATOM 1.0 syndication feeds.\n\n## Usage\n\nYou're willing to consume **ATOM 1.0** or **RSS 2.0** feed? Start by creating and interface\n\n```kotlin\ninterface RssReader {\n\n  fun readRss(): RssFeed\n\n  fun readAtom(): AtomFeed\n}\n```\n\nthen let `Syndication` class generates an implementation of that interface `RssReader`:\n\n```kotlin\nval reader = syndicationReader.create(RssReader::class.java)\nval rssFeed = reader.readRss() // this is synchronous\nval atomFeed = reader.readAtom() // this is synchronous\n```\n\neach call from the created `RssReader` will make an HTTP request and return the expected syndication feed.\n\nBy default only `RssFeed` and `AtomFeed` are accepted as return type.\n\nIf you would like to do things asynchronously then take a look to existing adapters in this repo.\n\n- **kotlin-coroutines-adapter** for example let you return `Deferred\u003cRssFeed\u003e` or `Deferred\u003cAtomFeed\u003e`.\n- **rxjava2-adapter** let you return [RxJava 2.x](https://github.com/ReactiveX/RxJava) types (`Flowable`, `Maybe`, `Single`).\n- **rxjava3-adapter** let you return [RxJava 3.x](https://github.com/ReactiveX/RxJava) types (`Flowable`, `Maybe`, `Single`).\n\n\n## Custom syndication feed\n\nBy default only `RssFeed` and `AtomFeed` are accepted as return type but If you would like to\nreturn your **own custom type** then see **wiki**.\n\n## Syndication specifications\n\n- [Atom 1.0](https://tools.ietf.org/html/rfc4287)\n- [RSS 2.0](http://www.rssboard.org/rss-specification)\n\n## Download\n\n\nDownload the [latest JAR](https://search.maven.org/search?q=g:com.ouattararomuald%20AND%20a:syndication) or grab via Gradle:\n\n```gradle\nimplementation 'com.ouattararomuald:syndication:2.1.1'\n```\n\nor Maven:\n\n```xml\n\u003cdependency\u003e\n  \u003cgroupId\u003ecom.ouattararomuald\u003c/groupId\u003e\n  \u003cartifactId\u003esyndication\u003c/artifactId\u003e\n  \u003cversion\u003e2.1.1\u003c/version\u003e\n\u003c/dependency\u003e\n```\n\nSnapshots of the development version are available in [Sonatype's snapshots repository](https://oss.sonatype.org/content/repositories/snapshots/).\n\n## Contributing\n\nContributions you say? Yes please!\n\n**Bug report?**\n\nIf at all possible, please attach a minimal sample project or code which reproduces the bug.\nScreenshots are also a huge help if the problem is visual.\n\n**Send a pull request!**\n\nIf you're fixing a bug, please add a failing test or code that can reproduce the issue.\n\n## License\n\n```\nCopyright 2018 Ouattara Gninlikpoho Romuald\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  http://www.apache.org/licenses/LICENSE-2.0\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```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fouattararomuald%2Fsyndication","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fouattararomuald%2Fsyndication","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fouattararomuald%2Fsyndication/lists"}