{"id":13820841,"url":"https://github.com/FeatureProbe/FeatureProbe","last_synced_at":"2025-05-16T10:33:31.781Z","repository":{"id":36966619,"uuid":"496444614","full_name":"FeatureProbe/FeatureProbe","owner":"FeatureProbe","description":"FeatureProbe is an open source feature management service. 开源的高效可视化『特性』管理平台，提供特性开关、灰度发布、AB实验全功能。","archived":false,"fork":false,"pushed_at":"2024-10-25T12:02:51.000Z","size":235064,"stargazers_count":1580,"open_issues_count":46,"forks_count":125,"subscribers_count":23,"default_branch":"main","last_synced_at":"2025-05-14T12:13:31.215Z","etag":null,"topics":["abtest","abtesting","configuration","configuration-management","continuous-delivery","developer-tools","devops","devops-tools","experiment","feature-flag","feature-flags","feature-toggle","feature-toggles","featureflag","flag","remote-config","toggle-switch"],"latest_commit_sha":null,"homepage":"https://featureprobe.github.io/FeatureProbe/","language":"TypeScript","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/FeatureProbe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2022-05-26T01:37:50.000Z","updated_at":"2025-05-13T07:59:57.000Z","dependencies_parsed_at":"2023-01-17T09:16:04.648Z","dependency_job_id":"7b6d26d8-06ea-4b82-9dcb-96d6e1401afb","html_url":"https://github.com/FeatureProbe/FeatureProbe","commit_stats":null,"previous_names":[],"tags_count":31,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FeatureProbe%2FFeatureProbe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FeatureProbe%2FFeatureProbe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FeatureProbe%2FFeatureProbe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FeatureProbe%2FFeatureProbe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FeatureProbe","download_url":"https://codeload.github.com/FeatureProbe/FeatureProbe/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254512915,"owners_count":22083478,"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":["abtest","abtesting","configuration","configuration-management","continuous-delivery","developer-tools","devops","devops-tools","experiment","feature-flag","feature-flags","feature-toggle","feature-toggles","featureflag","flag","remote-config","toggle-switch"],"created_at":"2024-08-04T08:01:10.104Z","updated_at":"2025-05-16T10:33:31.755Z","avatar_url":"https://github.com/FeatureProbe.png","language":"TypeScript","readme":"![Feature Management Service, FeatureProbe](./pictures/featureprobe_title.png)\n\n\n[![Last Commit](https://img.shields.io/github/last-commit/FeatureProbe/FeatureProbe)](https://github.com/FeatureProbe/FeatureProbe)\n[![Last Release](https://img.shields.io/github/v/release/featureprobe/featureprobe)](https://github.com/FeatureProbe/FeatureProbe/releases)\n[![Docker Pulls](https://img.shields.io/docker/pulls/featureprobe/api)](https://hub.docker.com/u/featureprobe)\n[![Apache-2.0 license](https://img.shields.io/github/license/FeatureProbe/FeatureProbe)](https://github.com/FeatureProbe/FeatureProbe/blob/main/LICENSE)\n[![Join FeatureProbe on Slack](https://img.shields.io/badge/slack-join-blue?logo=slack)](https://join.slack.com/t/featureprobe/shared_invite/zt-1qjcgy22s-1eeqZLs~RpoyovG8hMZu4w)\n[![EN doc](https://img.shields.io/badge/Docs-English-blue.svg)](https://featureprobe.github.io/FeatureProbe/)\n[![CN doc](https://img.shields.io/badge/文档-中文版-blue.svg)](https://featureprobe.github.io/FeatureProbe/zh-CN/)\n[![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/FeatureProbe.svg?style=social\u0026label=FeatureProbe)](https://twitter.com/FeatureProbe)\n\n![TS](https://img.shields.io/badge/TypeScript-3178C6.svg?style=for-the-badge\u0026logo=TypeScript\u0026logoColor=white)\n![React](https://img.shields.io/badge/React-61DAFB.svg?style=for-the-badge\u0026logo=React\u0026logoColor=black)\n![SpringBoot](https://img.shields.io/badge/Spring%20Boot-6DB33F.svg?style=for-the-badge\u0026logo=Spring-Boot\u0026logoColor=white)\n![Rust](https://img.shields.io/badge/rust-%23000000.svg?style=for-the-badge\u0026logo=rust\u0026logoColor=white)\n\n\n# 跳转到[国内中文版](https://gitee.com/featureprobe/FeatureProbe/blob/main/README_CN.md)\n\n\n# 💎 FeatureProbe \n\n**FeatureProbe** is an open source **feature management service**. \nIt allows R\u0026D, SRE and operation teams to launch new features or switch software implementations with confidence and lower risk.\nFeatureProbe eliminates manual delays through its practice in continuous delivery and is not hindered by the size of a \nteam or the complexity of a product, which allows developers to maintain their velocity. \nIt also enables the operation team to change online service parameters within seconds or roll out configurations progressively \nwithout effort.\n\nWith over 5 years of usage in a company of 5000+ developers, we have seen the remarkable difference FeatureProbe makes\nthrough the acceleration of daily development tasks. It also supports our million-user level product daily operations.\n\nNow we are making this project open source to help more developers and operation people and contribute to the programming society. \n\n\n## 🚀 Why you should use FeatureProbe\n\nFeatureProbe brings about value to our daily development and operations in these aspects:\n\n1. **Reducing development effort to merge branches**. \nWe can use feature toggles to set up gates for features on the \nmain branch rather than creating branches for features. \nThis can help us reduce time and effort from merging branches frequently and increase \ndevelopment velocity.\n2. **Lowering down the time to recover**. \nFeature toggles can separate and limit service issues from spreading by turning off the problematic services or carrying\nout service degradations. The SRE team can control the toggles on UI rather than waking up R\u0026D on-call staff to do something.\n3. **Saving testing environment cost**. \nFeatureProbe makes it possible to test new features in the production\nenvironment by enabling them for a small portion of users and collecting feedback.\n4. **One-stop configuration center for operation**. \nFeatureProbe provides a comprehensive and user-friendly management portal for configuring and managing features, \nrollout, rollback, peer reviews, accounts and permissions, the operation team can use the portal solely to set up and send out specific features/versions to \ncertain users based on their geolocation or other factors. \n5. **Doing A/B testings to get insights**. \nFeatureProbe helps the operation team do online A/B testing easily and gain insight\nfrom different marketing/sales strategies, which is one of the key factors in increasing the product or service's \nsales performance.\n6. **And more!** \nDiscover all the amazing things FeatureProbe can accomplish. \n\n## 🔎 UI Snapshot\n\n* Toggle Management List\n![FeatureProbe screenshot](./pictures/toggles_en.png) \n\n* Target Setting\n![targeting](./pictures/targeting_en.png)\n\n* Traffic Monitor\n![traffic](./docs/pictures/evaluations_en.png)\n\n* Metric Analysis\n![metric](./docs/pictures/metric_config_en.png)\n![metric](./docs/pictures/metric_en.png)\n\n# 🧩 Architecture of FeatureProbe\n\nThe overall architecture of FeatureProbe is shown in the following figure\n\n![FeatureProbe Architecture](./pictures/feature_probe_architecture.png)\n\n* Management Center\n   * front-end: [Admin UI](https://github.com/FeatureProbe/FeatureProbe/tree/main/ui), \n   * back-end: [API](https://github.com/FeatureProbe/FeatureProbe/tree/main/api), \n\n* FeatureProbe [Server](https://github.com/FeatureProbe/FeatureProbe/tree/main/server)\n\n* SDKs\n   * [Client-Side SDKs](#client-side-sdk)\n   * [Server-Side SDKs](#server-side-sdk)\n\n\n# 🍭 Get Started in 2 Steps\n\n## 1️⃣ Start FeatureProbe Central Service\n\n1. You can use docker composer to set your own FeatureProbe service\n\n   * Make sure you have [`git`](https://git-scm.com/) and [`docker`](https://www.docker.com/) installed. 。\n   * Clone the repository to your server and boot up the services. Change the ports defined in docker-compose.yml as needed.\n   \n   ``` bash\n       git clone https://github.com/FeatureProbe/FeatureProbe.git\n       cd FeatureProbe\n       docker compose up\n   ```\n   * Visit the service on [http://localhost:4009](http://localhost:4009) with a browser and use the default credentials to log in.\n        - username: `admin`\n        - password: `Pass1234`\n\n## 2️⃣ Use FeatureProbe SDK in your application\n\nImport FeatureProbe SDK in your app, and check the Feature Toggle status in your code like the following pseudo-code:\n\n~~~ java\nFPUser user = new FPUser(\"user_id\", \"user_name\", \"user_email\");\n\nif (fpClient.boolValue(YOUR_TOGGLE_KEY, user, false)) {\n  // Do some new thing;\n} else {\n  // Do the default thing;\n}\n~~~\n\nWe have SDKs for the following program languages, choose one for your application.\n\n### \u003ca name=\"server-side-sdk\"\u003e\u003c/a\u003e 💻 **Server Side SDK**\n\n* [Java SDK](https://github.com/FeatureProbe/server-sdk-java)\n* [Rust SDK](https://github.com/FeatureProbe/server-sdk-rust)\n* [Golang SDK](https://github.com/FeatureProbe/server-sdk-go)\n* [Python SDK](https://github.com/FeatureProbe/server-sdk-python) by [@HeZean](https://github.com/HeZean)\n* [Node.js SDK](https://github.com/FeatureProbe/server-sdk-node) by [@HeZean](https://github.com/HeZean)\n\n\n### \u003ca name=\"client-side-sdk\"\u003e\u003c/a\u003e 📲 **Client Side SDK**\n\n* [Javascript SDK](https://github.com/FeatureProbe/client-sdk-js)\n* [Android SDK](https://github.com/FeatureProbe/client-sdk-mobile)\n* [iOS SDK](https://github.com/FeatureProbe/client-sdk-mobile)\n* [Mini Program SDK](https://github.com/FeatureProbe/client-sdk-miniprogram)\n* [React SDK](https://github.com/FeatureProbe/client-sdk-react)\n* [Flutter SDK](https://github.com/FeatureProbe/client-sdk-flutter)\n\n\n# 📚 More information\n\nPlease visit our [Documentation](https://featureprobe.github.io/FeatureProbe/)\n\n# 🙌 Contributing\n\nWe are working on continue evolving FeatureProbe core, making it flexible and easier to use. \nDevelopment of FeatureProbe happens in the open on GitHub, and we are grateful to the \ncommunity for contributing bugfixes and improvements.\n\nPlease read [CONTRIBUTING](CONTRIBUTING.md) for details on our code of conduct, and the process for \ntaking part in improving FeatureProbe.\n\n\n# 📜 License\n\nThis project is licensed under the Apache 2.0 License - see the [LICENSE](LICENSE) file for details.\n\n\n# 🌈 Community and Sharing\n\nWe are growing a community to help newcomer to learn FeatureProbe. Don't hesitate to reach out for help.\n\nIf you want ask open questions about FeatureProbe, feature management or discuss these topics in general, join us on [![Join FeatureProbe on Slack](https://img.shields.io/badge/slack-join-blue?logo=slack)](https://join.slack.com/t/featureprobe/shared_invite/zt-1qjcgy22s-1eeqZLs~RpoyovG8hMZu4w) \n\nOr if you prefer to talk in Chinese, join our wechat group: \n\n\u003cimg src=\"./pictures/Wechat0715.png\" width = \"250\" /\u003e\n\nFor Bug report or new feature requirement, create a [GitHub issue](https://github.com/FeatureProbe/FeatureProbe/issues/new/choose) for us.\n\n# 🎢 Star History\n\n[![Star History Chart](https://api.star-history.com/svg?repos=FeatureProbe/FeatureProbe\u0026type=Date)](https://star-history.com/#FeatureProbe/FeatureProbe\u0026Date)\n\n","funding_links":[],"categories":["TypeScript","功能切换"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFeatureProbe%2FFeatureProbe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FFeatureProbe%2FFeatureProbe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FFeatureProbe%2FFeatureProbe/lists"}