openYuanrong runtime:openYuanrong 多语言运行时提供函数分布式编程,支持 Python、Java、C++ 语言,实现类单机编程高性能分布式运行。
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
fix(smoke): set YR_GATEWAY_ADDRESS for sandbox tunnel and stabilize reverse tunnel test Separate Traefik gateway (8888/web) from frontend API (18888) in K8S smoke, render enableEvent via Helm overlay instead of post-deploy patch, and verify reverse tunnel through the local proxy URL rather than flaky sandbox exec. Signed-off-by: mhsong2 <songminhui2@huawei.com> | 10 天前 | |
fix:三个下划线改成四个 atomgit md 中 三个 --- 有特殊处理,加一个中划线,变成四个就可以了 Signed-off-by: mayuehit <mayue51@huawei.com> | 5 个月前 | |
ci: add buildkite Signed-off-by: yuchaow <wangyuchao12@huawei.com> | 3 个月前 | |
fix: restore changes overwritten by pr791 merge PR 791 was merged from an old full-tree branch head and overwrote several changes that had already landed on master after PR 788. - restore PR 750 MSetTx deprecation/API documentation updates - restore PR 792 Java ObjectRef invoke argument handling - restore PR 793, PR 795, and PR 796 documentation cleanup and redaction updates - keep PR 791 split-wheel lazy import and datasystem build changes intact Signed-off-by: mhsong2 <songminhui2@huawei.com> | 3 天前 | |
fix(package): add openssl linker names to native sdk libs Add package-time helpers that create libssl.so and libcrypto.so symlinks for native SDK library directories when the package only contains versioned OpenSSL libraries. The helper now uses a package-level target/source list and computes relative symlink targets automatically. This covers runtime/sdk/cpp/lib, datasystem SDK native lib directories, and the runtime Python datasystem payload without hard-coding a single source directory. Warn when candidate directories cannot provide the expected OpenSSL libraries so package logs expose incomplete artifacts. Signed-off-by: mhsong2 <songminhui2@huawei.com> | 10 小时前 | |
fix(python-api): keep openyuanrong main wheel pure python Keep the openyuanrong distribution free of Python ABI-bound fnruntime binaries. Move fnruntime selection into the runtime wheel and keep yr top-level exports lazy so import yr remains pure Python until runtime APIs are used. Also keep the release build path aligned with the current datasystem master SDK layout: - update the datasystem submodule and Bazel source-build rules - drop unsupported datasystem prebuilt wiring - preserve process-mode runtime mappings and SDK compatibility paths - refresh related runtime, KV, sandbox, and example documentation Signed-off-by: mhsong2 <songminhui2@huawei.com> | 3 天前 | |
chore: consolidate initial sandbox follow-up fixes Signed-off-by: mhsong2 <songminhui2@huawei.com> | 13 天前 | |
fix(ci): support runtime manager packaging Signed-off-by: mhsong2 <songminhui2@huawei.com> | 1 天前 | |
fisrt commit init code | 8 个月前 | |
feat[all]: merge ant branch with sandbox, snapshot, and aio features Major changes: - Add sandbox functionality for function execution isolation - Add snapshot/snapstart support for checkpoint management - Add AIO (all-in-one) example with Docker deployment - Support loading environment variables from .env files - Add port forwarding functionality - Improve multi-language APIs (Python/Java/Go/C++) - Optimize build and deployment scripts - Update documentation and examples - Add submodules: datasystem, frontend, functionsystem Signed-off-by: songminhui <songminhui2@huawei.com> | 3 个月前 | |
| 11 小时前 | ||
fix: restore changes overwritten by pr791 merge PR 791 was merged from an old full-tree branch head and overwrote several changes that had already landed on master after PR 788. - restore PR 750 MSetTx deprecation/API documentation updates - restore PR 792 Java ObjectRef invoke argument handling - restore PR 793, PR 795, and PR 796 documentation cleanup and redaction updates - keep PR 791 split-wheel lazy import and datasystem build changes intact Signed-off-by: mhsong2 <songminhui2@huawei.com> | 3 天前 | |
fix(ci): support runtime manager packaging Signed-off-by: mhsong2 <songminhui2@huawei.com> | 1 天前 | |
feat: improve macOS build compatibility, fix race condition and build issues - frontend/build.sh: fix Go workspace mode (GOWORK=off instead of -mod=mod) - WORKSPACE: change Boost URL to archives.boost.io for faster downloads - bazel/datasystem_build.bzl: fix source paths (token->agc dir, remove comm_wrapper) - bazel/boost.bzl: remove redundant hdrs glob from sub-targets (already in boost_headers) - api/cpp/BUILD.bazel: propagate ENABLE_DATASYSTEM flag to yr_api_lib copts - src/libruntime/libruntime.cpp: fix SIGSEGV race via atomic_load/store on dsClients - src/libruntime/heterostore/datasystem_hetero_store.cpp: fix copy-paste error messages in stubs - src/libruntime/statestore/datasystem_state_store.cpp: fix missing token copy in Init() - test/st/test.sh: fix wheel glob, force-reinstall, off_cluster skip (-O opt-in), fix quoted args in timeout_run_case_wrapper - test/st/python/pytest.ini: register off_cluster marker - test/st/python/test_off_cluster.py: add pytestmark for off_cluster Signed-off-by: yuchaow <wangyuchao12@huawei.com> | 3 个月前 | |
fix(package): add openssl linker names to native sdk libs Add package-time helpers that create libssl.so and libcrypto.so symlinks for native SDK library directories when the package only contains versioned OpenSSL libraries. The helper now uses a package-level target/source list and computes relative symlink targets automatically. This covers runtime/sdk/cpp/lib, datasystem SDK native lib directories, and the runtime Python datasystem payload without hard-coding a single source directory. Warn when candidate directories cannot provide the expected OpenSSL libraries so package logs expose incomplete artifacts. Signed-off-by: mhsong2 <songminhui2@huawei.com> | 10 小时前 | |
fix[runtime]: 修复 detached-actor 首次 invoke 永久挂起 driver 端 InvokeOrderManager 对"由其他 runtime 创建的命名/detached 实例" (经 RegisterInstanceAndUpdateOrder 注册,如 QueryInstanceMeta 获取命名实例) unfinishedSeqNo 从未被 NotifyInvokeSuccess 推进,保持初值 0。首调 Invoke 时 下发 invocationSequenceNo=1 但 minUnfinishedSequenceNo=0,远端 OrderedExecutionManager::Handle 因 invokeUnfinishedSeqNo(0) != seqNo(1) 将 请求挂入 waitingInvokeReqs,等待永远不到的 seqNo=0,函数体永不执行, yr.get(detached.add.invoke(2)) 永久阻塞直至超时/租约回收。 根因修复:在 RegisterInstanceAndUpdateOrder 非 restored 分支,orderingCounter++ 后将 unfinishedSeqNo 对齐到 orderingCounter。语义为"该实例由其他 runtime 创建,driver 视角下 0..orderingCounter-1 不存在/已结束,远端可直接从 orderingCounter 起执行",使首调的 minUnfinishedSequenceNo 与 invocationSequenceNo 同步,远端 while 条件立即满足。restored(snapstart) 路径不动,保留沙箱恢复语义。 放弃运行时侧"跳空洞"方案:远端无法区分"driver 没发更早请求"与"发了但 乱序未到",会破坏 HandleMisorderedRequestTest 的乱序重排并静默丢请求。 测试: - RegisterInstanceAndUpdateOrderTest 补 unfinishedSeqNo 对齐断言 - 新增 RegisterInstanceAndUpdateOrderAlignsUnfinishedSeqForDetachedFirstInvokeTest 复现 detached 首调:注册→Invoke(seqNo=1)→UpdateUnfinishedSeq 断言 invokeUnfinishedSeqNo == invokeSeqNo == 1 验证(compile 容器 bazel): - //test:invoke_order_manager_test 8/8 PASSED - //test:libruntime_test (ExecutionManagerTest+InvokeOrderManagerTest) PASSED Signed-off-by: For_YL <zhangtangwei@huawei.com> | 18 小时前 | |
build(package): delegate runtime launcher build to functionsystem Call functionsystem run.sh build --component runtime_launcher from the superproject Makefile so the runtime launcher build logic is owned by the functionsystem repo. Keep the aggregate all/functionsystem targets from building runtime-launcher twice, while preserving an explicit runtime_launcher target for packaging and release jobs. Add Makefile coverage for the delegated build command and output copy contract. Signed-off-by: mhsong2 <songminhui2@huawei.com> | 10 小时前 | |
feat[all]: merge ant branch with sandbox, snapshot, and aio features Major changes: - Add sandbox functionality for function execution isolation - Add snapshot/snapstart support for checkpoint management - Add AIO (all-in-one) example with Docker deployment - Support loading environment variables from .env files - Add port forwarding functionality - Improve multi-language APIs (Python/Java/Go/C++) - Optimize build and deployment scripts - Update documentation and examples - Add submodules: datasystem, frontend, functionsystem Signed-off-by: songminhui <songminhui2@huawei.com> | 3 个月前 | |
chore: consolidate early sandbox gate fixes Signed-off-by: mhsong2 <songminhui2@huawei.com> | 13 天前 | |
fix(ci): support runtime manager packaging Signed-off-by: mhsong2 <songminhui2@huawei.com> | 1 天前 | |
fix(ci): support runtime manager packaging Signed-off-by: mhsong2 <songminhui2@huawei.com> | 1 天前 | |
chore(submodule): update functionsystem runtime launcher build Update the functionsystem gitlink to upstream master after PR 350 merged. This brings in the runtime-launcher build and packaging support required by the yuanrong package flow. Signed-off-by: mhsong2 <songminhui2@huawei.com> | 10 小时前 | |
add .bazel_redirect.cfg. add .bazel_redirect.cfg. Signed-off-by: mayuehit <mayue51@huawei.com> | 8 个月前 | |
feat: improve macOS build compatibility, fix race condition and build issues - frontend/build.sh: fix Go workspace mode (GOWORK=off instead of -mod=mod) - WORKSPACE: change Boost URL to archives.boost.io for faster downloads - bazel/datasystem_build.bzl: fix source paths (token->agc dir, remove comm_wrapper) - bazel/boost.bzl: remove redundant hdrs glob from sub-targets (already in boost_headers) - api/cpp/BUILD.bazel: propagate ENABLE_DATASYSTEM flag to yr_api_lib copts - src/libruntime/libruntime.cpp: fix SIGSEGV race via atomic_load/store on dsClients - src/libruntime/heterostore/datasystem_hetero_store.cpp: fix copy-paste error messages in stubs - src/libruntime/statestore/datasystem_state_store.cpp: fix missing token copy in Init() - test/st/test.sh: fix wheel glob, force-reinstall, off_cluster skip (-O opt-in), fix quoted args in timeout_run_case_wrapper - test/st/python/pytest.ini: register off_cluster marker - test/st/python/test_off_cluster.py: add pytestmark for off_cluster Signed-off-by: yuchaow <wangyuchao12@huawei.com> | 3 个月前 | |
feat: improve macOS build compatibility, fix race condition and build issues - frontend/build.sh: fix Go workspace mode (GOWORK=off instead of -mod=mod) - WORKSPACE: change Boost URL to archives.boost.io for faster downloads - bazel/datasystem_build.bzl: fix source paths (token->agc dir, remove comm_wrapper) - bazel/boost.bzl: remove redundant hdrs glob from sub-targets (already in boost_headers) - api/cpp/BUILD.bazel: propagate ENABLE_DATASYSTEM flag to yr_api_lib copts - src/libruntime/libruntime.cpp: fix SIGSEGV race via atomic_load/store on dsClients - src/libruntime/heterostore/datasystem_hetero_store.cpp: fix copy-paste error messages in stubs - src/libruntime/statestore/datasystem_state_store.cpp: fix missing token copy in Init() - test/st/test.sh: fix wheel glob, force-reinstall, off_cluster skip (-O opt-in), fix quoted args in timeout_run_case_wrapper - test/st/python/pytest.ini: register off_cluster marker - test/st/python/test_off_cluster.py: add pytestmark for off_cluster Signed-off-by: yuchaow <wangyuchao12@huawei.com> | 3 个月前 | |
add .clang-format. Signed-off-by: ForYL <zhangtangwei@huawei.com> | 8 个月前 | |
feat[all]: merge ant branch with sandbox, snapshot, and aio features Major changes: - Add sandbox functionality for function execution isolation - Add snapshot/snapstart support for checkpoint management - Add AIO (all-in-one) example with Docker deployment - Support loading environment variables from .env files - Add port forwarding functionality - Improve multi-language APIs (Python/Java/Go/C++) - Optimize build and deployment scripts - Update documentation and examples - Add submodules: datasystem, frontend, functionsystem Signed-off-by: songminhui <songminhui2@huawei.com> | 3 个月前 | |
feat(sandbox): sync develop branch changes to feature/sandbox Synchronize incremental changes from develop into feature/sandbox, including websocket transport layer, sandbox reverse-tunnel, checkpoint lifecycle APIs, invoke-direct optimization, and related fixes. Key changes: - src/libruntime: add WebSocket transport (ws_transport.cpp/h), extend HTTP transport and client manager, add invoke-direct path - api/python: sandbox tunnel client/server, checkpoint CLI commands, invoke-direct support, config/runtime improvements - api/go: add ObjectRefDirect type for bypass-datasystem path - api/java: add RuntimeUtils seed-file helpers - deploy/process: config.sh additions (traefik, fc_agent_mgr, etc.), services.yaml python3.12 runtime entry - docs: sandbox-reverse-tunnel, websocket-transport, invoke-chain docs - test: ws_transport unit tests, invoke-direct smoke test, checkpoint lifecycle/query/actor e2e smoke tests - scripts: bump download URLs, add package utils helper Exclude aci.yaml (branch-specific CI configuration). Signed-off-by: Luo Rob <robbluo@gmail.com> Signed-off-by: Lwy_Robb <luowenyu4@huawei.com> | 1 个月前 | |
chore: update merged submodule references Signed-off-by: mhsong2 <songminhui2@huawei.com> | 6 天前 | |
feat(sandbox): sync develop branch changes to feature/sandbox Synchronize incremental changes from develop into feature/sandbox, including websocket transport layer, sandbox reverse-tunnel, checkpoint lifecycle APIs, invoke-direct optimization, and related fixes. Key changes: - src/libruntime: add WebSocket transport (ws_transport.cpp/h), extend HTTP transport and client manager, add invoke-direct path - api/python: sandbox tunnel client/server, checkpoint CLI commands, invoke-direct support, config/runtime improvements - api/go: add ObjectRefDirect type for bypass-datasystem path - api/java: add RuntimeUtils seed-file helpers - deploy/process: config.sh additions (traefik, fc_agent_mgr, etc.), services.yaml python3.12 runtime entry - docs: sandbox-reverse-tunnel, websocket-transport, invoke-chain docs - test: ws_transport unit tests, invoke-direct smoke test, checkpoint lifecycle/query/actor e2e smoke tests - scripts: bump download URLs, add package utils helper Exclude aci.yaml (branch-specific CI configuration). Signed-off-by: Luo Rob <robbluo@gmail.com> Signed-off-by: Lwy_Robb <luowenyu4@huawei.com> | 1 个月前 | |
fix: restore changes overwritten by pr791 merge PR 791 was merged from an old full-tree branch head and overwrote several changes that had already landed on master after PR 788. - restore PR 750 MSetTx deprecation/API documentation updates - restore PR 792 Java ObjectRef invoke argument handling - restore PR 793, PR 795, and PR 796 documentation cleanup and redaction updates - keep PR 791 split-wheel lazy import and datasystem build changes intact Signed-off-by: mhsong2 <songminhui2@huawei.com> | 3 天前 | |
fisrt commit init code | 8 个月前 | |
docs: 分离文档中英文目录,更新部分API描述 - 中英文文档分开存放,后续上线英文文档 - 更新部分Python API描述,与最新API接口保持一致 Signed-off-by: yunsuoyan <shangjiguang@huawei.com> | 1 个月前 | |
add LICENSE. | 8 个月前 | |
build(package): delegate runtime launcher build to functionsystem Call functionsystem run.sh build --component runtime_launcher from the superproject Makefile so the runtime launcher build logic is owned by the functionsystem repo. Keep the aggregate all/functionsystem targets from building runtime-launcher twice, while preserving an explicit runtime_launcher target for packaging and release jobs. Add Makefile coverage for the delegated build command and output copy contract. Signed-off-by: mhsong2 <songminhui2@huawei.com> | 10 小时前 | |
fix: restore changes overwritten by pr791 merge PR 791 was merged from an old full-tree branch head and overwrote several changes that had already landed on master after PR 788. - restore PR 750 MSetTx deprecation/API documentation updates - restore PR 792 Java ObjectRef invoke argument handling - restore PR 793, PR 795, and PR 796 documentation cleanup and redaction updates - keep PR 791 split-wheel lazy import and datasystem build changes intact Signed-off-by: mhsong2 <songminhui2@huawei.com> | 3 天前 | |
docs:fix docs bug Signed-off-by: leiyijing <tjulyj33@163.com> | 1 个月前 | |
feat:Python package optimization Signed-off-by: YuchaoWang <wangyuchao12@huawei.com> | 5 个月前 | |
fix(python-api): keep openyuanrong main wheel pure python Keep the openyuanrong distribution free of Python ABI-bound fnruntime binaries. Move fnruntime selection into the runtime wheel and keep yr top-level exports lazy so import yr remains pure Python until runtime APIs are used. Also keep the release build path aligned with the current datasystem master SDK layout: - update the datasystem submodule and Bazel source-build rules - drop unsupported datasystem prebuilt wiring - preserve process-mode runtime mappings and SDK compatibility paths - refresh related runtime, KV, sandbox, and example documentation Signed-off-by: mhsong2 <songminhui2@huawei.com> | 3 天前 | |
feat[all]: review && bugfix Major changes: - Add sandbox functionality for function execution isolation - Add snapshot/snapstart support for checkpoint management - Add AIO (all-in-one) example with Docker deployment - Support loading environment variables from .env files - Add port forwarding functionality - Improve multi-language APIs (Python/Java/Go/C++) - Optimize build and deployment scripts - Update documentation and examples - Add submodules: datasystem, frontend, functionsystem Signed-off-by: songminhui <songminhui2@huawei.com> | 3 个月前 | |
fix(python-api): keep openyuanrong main wheel pure python Keep the openyuanrong distribution free of Python ABI-bound fnruntime binaries. Move fnruntime selection into the runtime wheel and keep yr top-level exports lazy so import yr remains pure Python until runtime APIs are used. Also keep the release build path aligned with the current datasystem master SDK layout: - update the datasystem submodule and Bazel source-build rules - drop unsupported datasystem prebuilt wiring - preserve process-mode runtime mappings and SDK compatibility paths - refresh related runtime, KV, sandbox, and example documentation Signed-off-by: mhsong2 <songminhui2@huawei.com> | 3 天前 | |
chore: consolidate initial sandbox follow-up fixes Signed-off-by: mhsong2 <songminhui2@huawei.com> | 13 天前 | |
feat[all]: merge ant branch with sandbox, snapshot, and aio features Major changes: - Add sandbox functionality for function execution isolation - Add snapshot/snapstart support for checkpoint management - Add AIO (all-in-one) example with Docker deployment - Support loading environment variables from .env files - Add port forwarding functionality - Improve multi-language APIs (Python/Java/Go/C++) - Optimize build and deployment scripts - Update documentation and examples - Add submodules: datasystem, frontend, functionsystem Signed-off-by: songminhui <songminhui2@huawei.com> | 3 个月前 |
openYuanrong 是一个 Serverless 分布式计算引擎,致力于以一套统一 Serverless 架构支持 AI、大数据、微服务等各类分布式应用。它提供多语言函数编程接口,以单机编程体验简化分布式应用开发;提供分布式动态调度和数据共享等能力,实现分布式应用的高性能运行和集群的高效资源利用。
简介
openYuanrong 由多语言函数运行时、函数系统和数据系统组成,支持按需灵活单独或组合使用。
- 多语言函数运行时:提供函数分布式编程,支持 Python、Java、C++ 语言,实现类单机编程高性能分布式运行。
- 函数系统:提供大规模分布式动态调度,支持函数实例极速弹性扩缩和跨节点迁移,实现集群资源高效利用。
- 数据系统:提供异构分布式多级缓存,支持 Object、Stream 语义,实现函数实例间高性能数据共享及传递。
函数是 openYuanrong 的核心概念抽象,它对传统 Serverless 函数概念进行了通用化扩展,起到了类似单机 OS 中进程的作用,可以表达任意分布式应用的运行实例,同时天然支持相互调用。
openYuanrong 分为三个代码仓库:
- yuanrong:对应多语言函数运行时,即当前仓。
- yuanrong-functionsystem:对应函数系统。
- yuanrong-datasystem:对应数据系统。
入门
查看 openYuanrong 文档 了解如何使用 openYuanrong 开发分布式应用。
- 安装:
pip install https://openyuanrong.obs.cn-southwest-2.myhuaweicloud.com/release/0.7.0/linux/x86_64/openyuanrong-0.7.0-cp39-cp39-manylinux_2_34_x86_64.whl,更多安装信息。 - 快速入门
贡献
我们欢迎您对 openYuanrong 做各种形式的贡献,请参阅我们的贡献者指南。
许可证
项目介绍
openYuanrong runtime:openYuanrong 多语言运行时提供函数分布式编程,支持 Python、Java、C++ 语言,实现类单机编程高性能分布式运行。
https://docs.openyuanrong.org/zh-cn/latest/index.html定制我的领域