{"id":16799911,"url":"https://github.com/fuyufjh/mior","last_synced_at":"2025-10-26T17:53:43.550Z","repository":{"id":37704683,"uuid":"495244700","full_name":"fuyufjh/mior","owner":"fuyufjh","description":"mior - Merge into one RSS","archived":false,"fork":false,"pushed_at":"2023-01-08T17:44:43.000Z","size":629,"stargazers_count":37,"open_issues_count":4,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-03-18T06:51:34.297Z","etag":null,"topics":["rss","rss-aggregator","rust"],"latest_commit_sha":null,"homepage":"https://mior.ericfu.me/","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fuyufjh.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":"2022-05-23T03:24:04.000Z","updated_at":"2025-03-12T08:04:24.000Z","dependencies_parsed_at":"2023-02-08T07:01:30.537Z","dependency_job_id":null,"html_url":"https://github.com/fuyufjh/mior","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/fuyufjh%2Fmior","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuyufjh%2Fmior/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuyufjh%2Fmior/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fuyufjh%2Fmior/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fuyufjh","download_url":"https://codeload.github.com/fuyufjh/mior/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244897785,"owners_count":20528291,"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":["rss","rss-aggregator","rust"],"created_at":"2024-10-13T09:30:06.233Z","updated_at":"2025-10-26T17:53:38.512Z","avatar_url":"https://github.com/fuyufjh.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mior\n\n_Merge into one RSS_\n\n[![CI status](https://github.com/fuyufjh/mior/actions/workflows/ci.yml/badge.svg)](https://github.com/fuyufjh/mior/actions/workflows/ci.yml)\n[![MIT License](https://img.shields.io/github/license/fuyufjh/mior?color=blue)](https://github.com/fuyufjh/mior/blob/main/LICENSE)\n\n***mior*** is a lightweight web service to filter and merge multiple RSS feeds into one. It provides a pure web-based,\nresponsive user interface to manage the upstream feed sources. A merged RSS is provided to user to\nfetch the merged results, which gathers all filtered items in upstream feeds.\n\n![screenshot](assets/screenshot.png)\n\n## Development Guide\n\n### Frontend\n\nThe frontend is built with [Next.js](https://nextjs.org/) and [MUI](https://mui.com/zh/), and uses [Yarn](https://yarnpkg.com/) as its package manager.\nWe recommend installing Node.js with [fnm](https://github.com/Schniz/fnm) (Fast Node Manager).\n\n```bash\ncurl -fsSL https://fnm.vercel.app/install | bash\n```\n\nInstall Node.js and Yarn package manager.\n\n```bash\ncd frontend/\nfnm install\nnpm install -g yarn\n```\n\nInstall dependencies and start dev server.\n\n```bash\nyarn install\nyarn dev\n```\n\nTo build into static HTMLs:\n\n```bash\nyarn build\n```\n\n### Backend\n\nThe backend server is developed with [Rust](https://www.rust-lang.org/) language and [Rocket](https://rocket.rs/) web framework.\nIf this is your first time to build Rust projects, please install [rustup](https://rustup.rs/) and it will\nset up all the environment automatically.\n\n```bash\ncurl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh\n```\n\nAdditionally, openssl library is required by Rocket. \n\n```bash\n# On macOS\nbrew install openssl\n\n# On Debian/Ubuntu\nsudo apt-get -y install pkg-config libssl-dev\n```\n\nCompile and start up the server:\n\n```bash\ncargo run\n```\n\nTo build into binary in release mode:\n\n```bash\ncargo build --release\n```\n\n### Notes on Local Debug\n\nBy default, the backend server listens on http://localhost:8000 and the frontend (Next.js dev server) listens \non http://localhost:3000, but the Next.js dev server has been configured to redirect API requests to the backend (see [next.config.js](next.config.js)). \n\nIn practice, we recommend you to debug from the http://localhost:3000 in order to take advantage of the\n[Fast Refresh](https://nextjs.org/docs/basic-features/fast-refresh) feature of Next.js.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuyufjh%2Fmior","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffuyufjh%2Fmior","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffuyufjh%2Fmior/lists"}