Apache ShenYu
Apache ShenYu is a responsive API gateway developed using Java Reactor. With its high performance, dynamic and flexible traffic control, hot swap, easy deployment and other features, out of the box to provide users with a full lifecycle of 'API' gateway, including 'API' registration, service proxy, protocol conversion, 'API' documentation and 'API' governance and other functions. Apache ShenYu graduated as an Apache top-level project in 'July 2022'.
website: https://shenyu.apache.org
GitHub: https://github.com/apache/shenyu
Version preview
Three months later, Apache ShenYu released version 2.7.0.3. This version merged 77 pull requests, added 29 new features, and made several improvements, refactored many functions, and fixed several bugs. Version history: https://github.com/apache/shenyu/compare/v2.7.0.2...v2.7.0.3
What's Changed
- feat(ut): add some tests by @yuluo-yx in #6105
- [type: release] 2.7.0.2 release by @Aias00 in #6111
- Bugfix: NacosConfig Test error by @Wweiei in #6116
- Bugfix: MCP server plugin requestConfig too long by @Wweiei in #6115
- fix: fix redisRateLimiter type cast error, for #6103 by @yuluo-yx in #6120
- [fix] EtcdInstanceRegisterRepositoryTest run error by @Wweiei in #6127
- Update comment to English in pom.xml by @yuluo-yx in #6128
- fix: ShenyuBootstrapApplication run failed when using Nacos data sync by @Wweiei in #6124
- fix: increase default timeout and improve error handling in MCP tools by @Aias00 in #6131
- fix: replace deprecated Base64 class with java.util.Base64 by @Aias00 in #6132
- sync dashboard by @Wweiei in #6133
- Fix the issue where the cache is not properly deleted after removing a selector in the Nacos data synchronization method. by @17661152 in #6140
- feat(ut): add shenyu-registry-api unit test by @yuluo-yx in #6135
- feat: refactor registry reserved keyword fields by @Wweiei in #6139
- feat: add sync data api unit test by @yuluo-yx in #6142
- chore: update chinese comment to english and add license by @yuluo-yx in #6146
- feat: refactor selector reserved keyword fields by @Wweiei in #6141
- chore: translate zh to en by @yuluo-yx in #6149
- [type:optimize] Optimize instance comparison logic in EurekaInstanceRegisterRepository by @yqw570994511 in #6154
- [feat] refactor rule reserved keyword fields by @Wweiei in #6147
- chore: translate zh to en by @yuluo-yx in #6151
- [type:optimize] Optimize instance comparison logic in NacosInstanceRegisterRepository by @yqw570994511 in #6153
- feat: Add more friendly prompt information to facilitate debugging by @yuluo-yx in #6157
- test: add more test for FallbackShenyuClientRegisterService by @yuluo-yx in #6155
- feat: adaptor other db for tag and appAuth by @yuluo-yx in #6152
- [feat] mcpServer support object and array param. by @Wweiei in #6150
- feat: sync dashboard by @Wweiei in #6160
- Modify the test data of the sample test MotanPluginTest by @ywwana in #6164
- [fix] fix data sync bug by @ywwana in #6165
- [feat] motan plugin config based on selector by @478320 in #6058
- chore: fix typo by @yuluo-yx in #6172
- [type:fix] fix_e2e_kafka by @xcsnx in #6170
- chore: add new line by @yuluo-yx in #6171
- [fix] AiResponseTransformerPluginTest run error by @Wweiei in #6169
- [feat] refactor reserved keyword fields for discovery_upstream table by @Wweiei in #6167
- [type:fix] fix oracle schema.sql by @eye-gu in #6162
- [feat] Gateway and client status management by @xchoox in #6057
- [feat]: shenyu mcp plugin auto register by @478320 in #6163
- [feat] cache plugin config based on selector by @478320 in #6068
- feat: Ai Proxy enhanced with SpringAI & Fallback & Proxy apikey by @fantasy-lotus in #6145
- [type:fix] fix init sql by @eye-gu in #6176
- fix some bug of mcp-auto-register by @478320 in #6180
- feat: ai proxy replace old with enhanced by @fantasy-lotus in #6174
- fix shenyu-registry-nacos : modify nacos instance check. by @BraveheartStone in #6178
- fix: doSelectMaster by @fantasy-lotus in #6185
- fix: fix shenyu-sync-data-http sync password error by @yuluo-yx in #6181
- feat: ai proxy sync dashboard by @fantasy-lotus in #6186
- [fix] The "name" field of TagVO has been changed by @Wweiei in #6190
- feat: adapt other db for discovery sql fields by @yuluo-yx in #6166
- chore(deps): bump org.apache.zookeeper:zookeeper from 3.9.3 to 3.9.4 by @dependabot[bot] in #6183
- [type:feat] add unit test by @xchoox in #6182
- [feat] loggingRabbitMQ plugin config based on selector by @478320 in #6059
- [feat] sofa plugin config based on selector by @478320 in #6062
- [feat]: loggingKafka plugin config based on selector by @478320 in #6074
- [type:optimize] Optimize LogCollectUtils by @liangjh98 in #6191
- [type:feat] Change bootstrap heartbeat reporting by @xchoox in #6187
- [type:feat] HTTP and WebSocket synchronous mode supports heartbeat detection by @xchoox in #6179
- feat: add shenyu-register-client-api unit test by @yuluo-yx in #6192
- [feat] github ci by @Aias00 in #6031
- infra: add auto notify GHA when issue is created by @yuluo-yx in #6198
- feat: add shenyu-register-client-beat module unit test by @yuluo-yx in #6193
- infra: add issue label manager GHA by @yuluo-yx in #6197
- [feat] mvnd by @Aias00 in #6041
- [ISSUE #6144] This issue was fixed because when discovering downstream services via Nacos, the old IP address would overwrite the new IP address after the downstream service restarted. This caused the error "Can not find healthy upstream URL, please check your configuration!" when calling downstream services via Shenyu. by @BraveheartStone in #6201
- [fix] the path truncation of get requests set by shenyuContext in MCP Server by @MaMengzhen in #6209
- fix: When there are multiple indices under the alias shenyu-access-lo… by @wusuobuzai in #6203
- Fix typo in active committers list by @yuluo-yx in #6205
- feat: add shenyu-registry-k8s module unit test by @yuluo-yx in #6206
- fix: remove unnecessary mock return value in MotanProxyServiceTest by @Aias00 in #6210
- feat(ci): replace prow action with local issue-manager script by @yuluo-yx in #6211
- Mcp auto register bug fix by @478320 in #6212
- feat: mcp server autoRegister enhance by @478320 in #6213
- fix: The use of outdated dependencies due to mvnd cache by @478320 in #6217
- Fix the issue of multiple selectors connecting to different registry centers by @yunlongn in #6218
- feat: import mcp server config by swagger doc by @478320 in #6219
- refactor: extract base data for plugin, selector and rule data class by @yuluo-yx in #6215
- feat: remove shenyu-infra-x-module by @yuluo-yx in #6216
- chore: fix typos in some files by @khanhkhanhlele in #6224
- fix: shenyu-examples-mcp by @478320 in #6226
- Fix shenyu mcp bugs by @478320 in #6227
- chore: update LICENSE with new dependencies and versions by @Aias00 in #6234
New Contributors
- @17661152 made their first contribution in #6140
- @xchoox made their first contribution in #6057
- @BraveheartStone made their first contribution in #6178
- @liangjh98 made their first contribution in #6191
- @MaMengzhen made their first contribution in #6209
- @wusuobuzai made their first contribution in #6203
- @khanhkhanhlele made their first contribution in #6224
Become a contributor
We welcome every contributor to join ShenYu, and welcome contributors to participate in ShenYu in the spirit of Apache Way!
See the contributor guidelines: