开源之夏经验分享|Koupleless 社区魏照华:开源精神是场永不停歇的接力

OSDU(Open Subsurface Data Universe,开放地下数据空间 / 开源地下数据生态系统) OSDU是由油气行业与云厂商共建的开源、云原生数据平台规范,旨在解决勘探开发领域数据孤岛、格式不统一、应用绑定等问题。其核心是“数据与应用解耦”,通过统一元数据模型、API及权限体系,实现跨云、跨项目的数据互通。平台支持地震、井筒、储层等专业数据管理,配套OpenVDS、ETP等标准,适配PB级体数据,支撑AI训练与数字孪生。虽为参考实现,非即用系统,但已成国际油气数字化底座趋势,国内三桶油正推进试点与国产化适配。 阅读详情

c627e8df98ebdc265503c7eab9556c94.gif

f5c6ec338375db33802436bbf7b9da57.png

魏照华

Computer Science

Koupleless 社区贡献者

就读于 University of Wolloging,Computer Science 专业研究生。

本文 5428 字,预计阅读 14 分钟 

今天 SOFAStack 邀请到了开源之夏 2024 Koupleless 社区的中选学生魏照华同学!在本项目中,他参与完成了 Koupleless 模块打包插件 Gradle 版本。希望他分享的这段经历,能让更多人了解到 Koupleless 开源社区,感受开源的魅力~

项目链接:https://summer-ospp.ac.cn/org/prodetail/2495a0374?lang=zh&list=pro

项目信息

项目名称:Koupleless 模块打包插件 Gradle 版本

项目导师:梁栎鹏

项目背景:

在 Koupleless 模块化研发框架里,模块是普通 SpringBoot 或者 Java 代码工程,通过使用 SOFAArk 模块打包插件构建出 jar 包,这个 jar 包就是我们的模块构建产物,通过在一个基座 JVM 里部署多个这样的模块 jar 包,运行起来的时候,1 个模块 = 1 个 ClassLoader + 1 个 SpringContext,通过多 ClassLoader 和 SpringContext 的隔离和共享来为模块开发提供最极致的研发效能和资源效能。


而 SOFAArk 打包插件就是将传统 Maven 工程打包成 SOFAArk 模块 jar 包的插件,并且支持设置类的隔离与共享的配置能力(对象的隔离与共享不在该插件里配置)。但是当前 SOFAArk 打包插件只支持 Maven 版本,不支持 Gradle 版本,导致很多 Gradle 的用户无法使用 SOFAArk 来享受到 Koupleless 模块化研发框架的收益。

项目实现思路

SOFAArk 目前拥有两种打包插件,分别为 sofa-ark-maven-plugin 和 sofa-ark-plugin-maven-plugin。前者负责将普通的 Java 工程或者 SpringBoot 工程打包成标准格式的 Ark 包或者 Ark Biz 包,后者是将一个或者多个普通的 jar 包打包成标准格式的 Ark Plugin。这三类 jar 包都有自己特定的格式和内容。具体的内容可以参考如下:

  • Ark :https://www.sofastack.tech/projects/sofa-boot/sofa-ark-ark-jar/

  • Ark Biz:https://www.sofastack.tech/projects/sofa-boot/sofa-ark-ark-biz/

  • Ark Plugin:https://www.sofastack.tech/projects/sofa-boot/sofa-ark-ark-plugin/

这三类包从包含类别上而言,Ark 包是包含种类最多的包,除了 MANIFEST.MF 文件之外,还包含了业务的 Ark Biz 包、Ark 容器,以及启动相关的内容。Ark 包的 Maven 打包过程,在 SOFAArk 的官方文档[1]中,已经有了详细的解析。

从这份文档中可以了解到,通过自定义 Maven 插件,按照 SOFAArk 中所定义的格式,重新编排后的 jar 包,就是我们想要得到的目标产物。

回到 Gradle 打包插件上,通过了解 Maven 插件打包的具体实现过程,使用 Gradle 提供的插件 API,来实现上述过程即可。为此,需要去了解 Gradle 的生命周期,依赖管理,自定义插件等内容,进行后续开发工作。

总览整个项目,实现过程中主要处理如下内容:

  • 用户的配置项

  • 项目依赖项

  • 启动类和容器类

  • 插件调试

 用户配置项

SOFAArk 打包插件提供了非常丰富的用户配置选项,通过设置这些配置选项,能够打包出满足不同需求的产物内容。不同的配置项会对应不同的特性,这些特性极大地增强了项目构建的灵活性与定制性。并且使得用户能够根据项目实际的运行环境、性能需求以及部署要求等因素,精细地调整打包产物的内容与形式。

Gradle 提供了 extensions 来让插件实现可配置,这一机制提供了一种优雅且强大的方式来定制插件行为。通过自定义 extension 类或者接口,声明需要的配置属性,便可以在插件中使用配置项。

//定义extensions
abstract public class ArkExtension {
   abstract public Property<Boolean> getAttach();
    // 定义一个字符串集合类型的属性excludes,用于指定需要在打包过程中排除的依赖
   abstract public SetProperty<String> getExcludes();
}
//在插件中使用
class ArkPlugin implements Plugin<Project> {
    void apply(Porject project){
      ArkExtension arkExtension = project.getExtensions().create("arkPlugin", ArkPluginExArkExtension.class);
 }
}

这里需要注意的是,使用 extensions 的扩展方式,如果对插件的属性设置了默认值,那么在配置结束阶段,是没有办法获取到用户的自定义配置的。这里考虑到我们需要对 sofa-ark-all 包进行配置,装载进入 runtimeClasspath,以便再后续进行处理。可以通过设置 afterEvaluate 来解决这个问题。afterEvaluate 是 Gradle 提供的一个非常重要的机制,它允许我们在项目的配置阶段完成之后执行相应的操作,这样可以确保用户的自定义配置被完全考虑在内。当我们将自定义逻辑放在 afterEvaluate 中时,Gradle 会先完成对所有用户配置的解析和应用,包括那些在 build.gradle 或其他配置文件中显式指定的属性,然后再执行自定义的操作。

 项目依赖项

在打包过程中,需要对不同 scope 的依赖进行处理,这涉及到 Gradle 的依赖管理。Gradle 中通常用两个 Classpath 来进行管理:

  • compileClasspath:编译依赖项,此路径下的依赖主要用于项目编译阶段。例如,项目使用特定的数据库连接库进行数据访问层代码的编写,在编译时,需要将该数据库连接库的相关 jar 包包含在 compileClasspath 中,这样编译器才能识别并正确编译涉及数据库操作的代码。编译依赖项确保了代码在编译期间能够顺利通过语法检查和类型校验,为后续的运行奠定基础。

  • runtimeClasspath:运行时依赖项,这些依赖是项目在实际运行过程中所必需的。以一个基于 Web 的应用为例,在运行时可能需要 Servlet 容器相关的依赖,这些依赖并不一定在编译阶段就绝对必要,但在应用启动和处理用户请求时是不可或缺的。运行时依赖项保证了项目在运行环境中能够正常执行各项功能。

在 Gradle 配置文件中通过 implementation、runtimeOnly 等声明的依赖项,最终会根据不同的阶段分类到上述的两个 classpath 中。例如,使用 implementation 'com.example:library:1.0.0' 声明的依赖,会在编译阶段添加到 compileClasspath,同时也会在运行时存在于 runtimeClasspath,因为 implementation 配置表示该依赖对于编译和运行都至关重要。而像 runtimeOnly 'com.example:runtime-only-library:1.0.0' 声明的依赖,则只会被添加到 runtimeClasspath,因为它仅在运行时才需要。

在 Gradle 中的 Action 中,通过获取 runtimeClasspath 配置,可以对运行时的依赖项进行分类、筛选、过滤等操作。例如,项目在运行时可能依赖多个日志库,但由于某些原因,需要对日志库进行优化,只保留特定的日志库进行打包。我们便可以在 SOFAArk 打包过程中,通过自定义配置 exclude 设置依赖项的标识(groupId、artifactId 和 version),去除不需要的日志库依赖。

 启动类和容器类

在 Ark 包的打包过程中,会对所有的依赖项进行分类,根据不同的类别,分为 Biz 包、Container 包,以及 Container 包的启动类相关的内容。用户在使用之前,如果没有指定相关包的配置项,会启用默认配置,从远程仓库或者本地仓库中获取到 sofa-ark-all 内容,并在配置阶段进行处理。此外,涉及到 Biz 包时,需要先将项目的所有 Biz 包打包出来后,再将这些 Biz 包写入到 Ark 包中。

想要实现上述的这些内容,并不需要自己去另外编写太多的代码,Gradle 提供了 Copy 和 CopySpec 两个工具。通过它们,我们可以极为方便地将依赖、配置项等各种内容输出到指定的目录。在使用这些工具时,我们只需要编写相应的过滤和操作规则,就能够精确地控制哪些内容需要被复制,哪些内容需要被排除,以及如何将它们按照我们期望的方式组织到目标目录中。

//定义目标目录为包的根目录
this.bootInfSpec = project.copySpec().into("");
bootInfSpec.into("", 定义过滤规则));
bootInfSpec.into("lib", 定义lib下面的过滤规则));

除了 Copy 和 CopySpec,Gradle 还提供了 CopyAction 对文件进行复制操作。CopyAction 的核心功能是将文件从一个位置复制到另一个位置,这是构建系统中常见的操作,尤其是在将资源、依赖项或生成的输出文件部署到相应的目录时。它不仅仅是简单的文件复制,还可以根据复制细节(CopySpec)来决定哪些文件需要复制,如何复制,以及复制时需要进行哪些处理。再最终将资源和内容写入到 jar 包时的操作,便可以集中到自定义的 CopyAction 中来实现。

 插件调试

初步完成插件的编写工作后,想要在本地调试需要三步:

  • 发布到 Maven 仓库

  • 项目引入

  • 断点调试

本地发布需要在插件项目的 build.gradle 中设置如下:

plugins {
//    本地调试用,发布到maven
    id 'maven-publish'
}

另外还需要对 publish 进行配置,配置完成发布到本地仓库后,就可以在想要测试的 Gradle 项目中进行引入,这里一般要设置测试项目中的 setting.gradle 和 build.gradle 文件,指定插件仓库和版本。最后,通过打断点启动插件,就可以对插件进行调试。

 项目未来

目前,Gradle 打包依然还有一些特性亟待解决和优化,包括即将支持的 declared 模式,优化 Ark 打包过程,抽离公用代码等内容。后续,我会进一步优化以上内容,使 Gradle 版本打包体验完成从可用到优雅的跃迁。

开源之夏个人随访

 自我介绍

大家好,我是魏照华。第一次了解到开源活动,是看到身边同学参加谷歌开源之夏的经历,当时为我推开了通往新世界的大门。我在随后也参与了一些国内外的活动,在此过程中,逐渐感受到开源精神和开源项目对世界产生的深刻影响。

 参与该项目的原因

本次能参与 SOFAArk 打包插件项目,于我而言是份特别的缘分——三年前在社区发起的 SOFAArk 源码解析活动中,我注意到一个关于支持 Netty 插件的 issue,当时利用闲暇时间尝试提交了 PR,并幸运地被合并到主分支。未曾想两年后的今天,可以再次参与 SOFAArk 项目。

 如何克服项目过程中的困难与挑战

就个人成长而言,我想分享以下两点:技术沟通的艺术与时间管理的哲学。

我本身并不擅长沟通,但是在项目实施中,我愈加体会到沟通是贯穿项目全周期的生命线。从前期与导师反复推敲项目目标、确定交付标准,到开发阶段针对方案的多轮技术探讨,直至后期维护方案的持续演变,每个环节都印证着一个事实——高质量的沟通本身就是技术实现的重要组成部分。这种认知让我开始有意识地培养自己的技术表达和沟通能力。

而在时间管理维度上,由于此次项目的实施阶段,我已经毕业参加工作,平衡全职工作与开源贡献的挑战远超预期。特别是程序开发的工作时间往往随着项目的进度“灵活安排”,面对职业任务与开源承诺的双重时间需求,我不得不直面资源分配的残酷现实:前期因在 Gradle 插件 API 上面花费了大量精力,恍然间发现时间竟已悄悄过半;中期在昼夜颠倒的编码调试中,又不得不妥协于某些有趣构想只能置于脑海。这种“时间赤字”的困境,最终转化为对敏捷规划和碎片时间利用上的重新审视和思考。

 有哪些感想

站在这个节点回望,非常感谢这次社区给予的机会。我会重新出发,继续深耕开源这片土壤。因为真正的开源精神,本就是场永不停歇的接力——我们既是前人智慧结晶的继承者,也是未来技术图景的脚手架搭建者。

参考链接

[1]:https://www.sofastack.tech/projects/sofa-boot/sofa-ark-build-package-plugin/

  推荐阅读  

477f0b37f6ad8bb9ab87d7bee368e8b3.png

SOFARPC 社区郑佳莉:开源的收获不止代码

021c308c511792838eab4f7ff06589a3.png

Koupleless 社区黄兴抗:在开源中培养工程思维

f7be5c51638301c9edef82cf314e4c78.png

如何在一个基座上安装更多 Koupleless 模块?

7a658574c7dc25b856eb909e8d2d5251.png

Koupleless 2024 年度报告 & 2025 规划展望

18b143ab4c95930a9ae3072173e045e9.png

3、全面掌握QGIS开发:从调试到应用的全方位指南 本文全面介绍了QGIS开发的各个环节,涵盖插件调试、PyQGIS API导航、插件创建与分发、独立地理空间应用开发,以及全局和项目级首选项的管理。通过详细的步骤说明、代码示例和流程图,帮助开发者系统掌握QGIS扩展与集成的核心技能,并展望了未来在功能拓展、跨平台兼容性和技术融合方面的可能性。 阅读详情

相关推荐

大模型训练(1):流水线并行

Gpipe的方法是,在训练时计算和运用的是micro-batch里的均值和方差,但同时持续追踪全部mini-batch的移动平均和方差,以便在测试阶段进行使用。流水线并行的核心思想是:在模型并行的基础上,进一步引入数据并行的办法,即把原先的数据再划分成若干个更小的batch,分批送入GPU进行训练,算一部分就让下一个GPU动起来。从实验结果可知,在关掉NVlinks的情况下,Gpipe一样也能实现随着GPU数量的增加,训练速度也增加的效果。前文说过,随着模型的增加,每块GPU中存储的中间结果也会越大。

呆呆象呆呆的博客 1970

开源之夏经验分享|SOFAStack 社区 袁梓为:开源项目从不是遥不可及

本篇项目经验分享来自 SOFAStack社区中选学生——袁梓为,在开源之夏 2023 中承担的项目是结合 NWR 实现 Flexible Raft,用于自定义 Quorum 的大小。关于 SOFAStack 社区SOFAStack™(Scalable Open Financial Architecture Stack)是一套用于快速构建金融级云原生架构的中间件,也是在金融场景里锤炼出来的最佳实践...

金融级分布式架构 419

LVGL按键触发回调函数的完整流程

如果是我的话我会怎么写:例如按键,我先定义一个结构体里面包含ID,事件名等和回调函数的链表节点结构体里面有具体函数的指针,也有指向下一个回调函数的链表节点的指针,初始化一个结构体变量的,通过BSP层来驱动触摸屏幕,再通过中间层与被按下时就会判断是长按还是短按还是其他,改变变量的事件例如:改成长按,生成事件包后再注册你长按的回调函数链表节点,再根据变量的事件到链表中遍历最后实现功能.父容器监听所有子列表项的点击事件,无需为每个列表项单独注册回调。的回调,打印所有事件日志,观察事件触发顺序。

solomonzw的博客 3239

使用koupleless实现模块化开发与多模块静态合并部署

koupleless是蚂蚁开源的基于sofa-ark的模块化研发框架GitHub - koupleless/koupleless: 模块化研发框架,运维调度系统,帮助应用解决研发运维系列痛点问题,省资源、秒级启动、灵活部署、快速需求交付等,并帮助存量应用低成本演进到 Serverless 模式;问题表象:在模块中rpc泛化调用时登录人信息没有传递下去,使用ServiceConfig动态暴漏rpc服务时也有这个问题。

qq_33606378的博客 1506

coze+飞书多维表格,批量分析小红书笔记,关键还能获取图片(附保姆级教程)

通过coze工作流,一键同步小红书账号和笔记链接到飞书多维表格,效率飞升~

qq_24403067的博客 4175

320x240 TFT屏的SPI DMA驱动避坑指南:基于HC32F460的时序调试心得

本文详细介绍了基于HC32F460 MCU驱动320x240 TFT屏的SPI DMA实战经验,涵盖硬件设计、波形诊断、DMA优化及高级调试技巧。重点解析SPI时序配置、DMA缓冲区对齐等常见问题,并提供逻辑分析仪波形诊断方法和性能优化策略,帮助开发者规避典型陷阱,提升显示性能。

weixin_42639246的博客 372

如何在一个基座上安装更多的 Koupleless 模块?

梁栎鹏(立蓬)蚂蚁集团技术工程师云原生领域工程师就职于蚂蚁集团中间件团队,参与维护与建设蚂蚁 SOFAArk 和 Koupleless 开源项目,参与内部 SOFAServerless 产品的研发和实践。本文 2773 字,预计阅读 7 分钟本文属于 Koupleless 进阶系列文章第五篇,默认读者对 Koupleless 的基础概念、能力都已经了解。如果还未了解过的可以在文末「阅读原文」查看...

金融级分布式架构 1251

复合材料RVE建模与力学性能分析实战指南

代表体积元(RVE)建模是复合材料多尺度分析的核心技术,通过建立微观结构与宏观性能的定量关联,可准确预测材料力学行为。本文基于ABAQUS平台,详细解析三材料(纤维/基体/界面相)RVE建模全流程,包括参数化几何建模、周期性网格划分策略、材料属性定义技巧等关键技术环节。针对碳纤维增强环氧树脂等典型复合材料,提供网格控制参数建议和材料参数参考表,并重点说明周期性边界条件的实现方法与验证标准。通过Python脚本自动化处理和优化分析流程,可显著提升计算效率,为复合材料设计提供可靠仿真依据。

weixin_34062469的博客 549

Koupleless 项目教程

Koupleless 项目教程 1. 项目的目录结构及介绍 Koupleless 项目的目录结构如下: koupleless/ ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── CURRENT_VERSION.txt ├── LICENSE ├── README-zh_CN.md ├── README.md ├── codecov.yml ├── doc...

gitblog_01072的博客 624

Python爬虫抓取淘宝商品详情页信息:从入门到高级技术应用

通过本篇博客,我们了解了如何使用Python爬虫抓取淘宝商品详情页的信息,如何使用requests和Selenium抓取静态和动态内容,如何应对淘宝的反爬虫机制,如何将抓取的数据保存到CSV文件等。随着爬虫技术的不断发展,开发者可以根据需要选择合适的工具和技术,如使用分布式爬虫框架提高抓取效率,或者利用OCR技术处理验证码等问题。在进行淘宝爬虫时,需要注意遵循相关法律法规和平台的爬虫政策,避免对平台造成过度的负担或侵犯其合法权益。

2201_76125261的博客 462

GEE:大面积研究区域数据分块导出,以解决内存限制和导出失败的问题

本文介绍了在Google Earth Engine (GEE)平台分块导出大面积研究区域数据的方法。针对直接导出大区域影像易失败的问题,作者提出通过网格分块技术进行处理。文章展示了完整的JavaScript代码示例,包含定义研究区域、加载ESA WorldCover数据集、设置分块参数(包括像素大小、分块尺寸)、创建网格系统、处理坐标转换等关键步骤。代码中还提供了错误处理和导出按钮功能,确保数据能可靠地分块导出到Google Drive。该方法有效解决了大区域数据导出时的内存限制问题,适用于全球范围的研究。

养乐多的博客 1186

SOFA Weekly|Koupleless 社区会议回顾、SOFABoot、SOFARPC 新版本发布、本周贡献、本周推荐阅读...

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 345

热更新方案 HybridCLR 学习教程 |(一)原理及准备工作

前面文章介绍了热更新相关的知识,包括使用xLua实现热更新实战等 那本文就来介绍一下 热更新方案 HybridCLR(代号wolong,原huatuo)和基本使用方法。 若是想了解更多关于HybridCLR的东西也可以去 官网 详细查阅。

努力前行,总会成为自己心中的那道光 2万+

SOFA Weekly|SOFABoot 新版本发布、Koupleless 社区会议回顾

SOFA WEEKLY | 每周精选筛选每周精华问答,同步开源进展欢迎留言互动~SOFAStack(ScalableOpenFinancialArchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控...

金融级分布式架构 308

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

SOFA Weekly|谁是 SOFA 卷王之王?社区本周贡献、本周推荐阅读

rchitecture Stack)是蚂蚁集团自主研发的金融级云原生架构,包含了构建金融级云原生架构所需的各个组件,包括微服务研发框架,RPC 框架,服务注册中心,分布式定时任务,限流/熔断框架,动态配置推送,分布式链路追踪,Metrics 监控度量,分布式高可用消息队列,分布式事务框架,分布式数据库代理层等组件,也是在金融场景里锤炼出来的最佳实践。SOFA WEEKLY | 每周精选。筛选每周精华问答,同步开源进展。谁是 SOFA 卷王之王?

金融级分布式架构 158

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

开源之夏经验分享|Koupleless 社区黄兴抗:在开源中培养工程思维

黄兴抗电子信息工程专业Koupleless 社区贡献者就读于南昌师范学院,电子信息工程专业的大三学生。本文2634 字,预计阅读7分钟今天 SOFAStack 邀请到了开源之夏 2024Koupleless社区的中选学生黄兴抗同学!在本项目中,他参与完成了存量应用自动改造成模块。希望他分享的这段经历,能让更多人了解到 Koupleless 开源社区,感受开源的魅力~项目链接:http...

金融级分布式架构 1528

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

从旁观者到贡献者:经历 OpenYurt 的“开源之夏”,我们想让更多人体验社区的魅力

在“开源之夏——OpenYurt 体验中心”,同学们能够以低门槛的方式快速上手并参与到项目当中,解决实际问题。从旁观者到社区贡献者的角色转变之间,让我们通过采访内容,一起看看他们的真实感受,以及有哪些意想不到的收获。

阿里巴巴云原生的博客 3548

百度开源文心5.5 Flash Base:280B MoE 只激活 14B,4 步部署 + 3 个坑,微调还是等指令版

百度开源文心 5.5 Flash 基座权重:280B MoE 每 token 激活 14B,1M 上下文,同尺寸开源 Base 30 项基准多数领先。4 步部署(vLLM/SGLang completions 链路)+ 3 个高频坑 + 动手前 6 点核对清单,并给出微调 Base 还是等指令版的判断线。

weixin_50937681的博客 293

开源密码管理与双因素认证工具离线镜像合集

本集合汇总等开源密码管理与双因素认证相关离线包。侧重密码箱与 2FA,与「安全审计/渗透扫描」合集错开。

260

GitHub 开源趋势日报 | 2026-11-08

每日精选 GitHub Trending 热门项目,聚焦 AI 与大模型、Agent 智能体领域,带你用一篇文章看懂开源风向。

weixin_45631123的博客 336

云捷EMS开源能源管理系统JAVA实战,好用的能源管理系统

云捷EMS是一款开源能源管理系统,覆盖物联网网关、数据采集、分析与可视化全链路,支持50余种工业协议,适配水、电、汽、光伏等多类能耗设备。系统基于微服务架构,采用SpringBoot+Vue3技术栈,支持MQTT、WebSocket双通道采集,具备低代码大屏配置、实时数据与预计算分析能力,助力企业实现能耗监测、节能降耗与碳管理数字化,可直接部署或二次开发,适用于工厂、园区等高耗能场景。

weixin_42648890的博客 230

52万 Star 的“列表的目录”:sindresorhus/awesome 如何用一套治理规则,成为全球开源资源的信任锚点

awesome 是 Sindre Sorhus 维护的开源索引项目,无一行可运行代码,却以超 52 万 Star 长居 GitHub 第二。它作为“列表的目录”,通过严格治理(30 天考察期、awesome-lint 校验、CC0 许可、贡献者评审机制)筛选高质量资源清单,成为开发者寻找优质技术资源的可信入口。虽不保证内容实时性,但其“筛选即认证”的模式重塑了信息获取方式,推动形成整个 Awesome 生态规范。

下载资源或查看教程前,请务必阅读置顶的《免责声明》 427

skill-up阿里开源Agent-Skill评估工具详解

它把「Agent 行为」这个一直靠感觉和运气的东西,变成了可声明、可执行、可回归、可演进的工程对象。对开发者:写 Skill 终于有了「单元测试 + 回归测试 + CI」;对团队:Skill 质量从「个人手艺」变成「团队资产」;对生态:Anthropic 兼容的evals.json导入 + 多引擎支持,降低了迁移和对比成本。Apache-2.0 许可、Go 编写、Windows 友好、中英双语文档——对国内开发者来说几乎零门槛。

301

开源PonWrt:让光猫刷上开源固件

弱电箱里的光猫,大多是运营商送的:能上网,想自己装插件、改配置,基本没门。想在光猫上跑 OpenWrt,前几年基本没谱;这几年 Airoha的盒子涌进二手市场,内存和闪存都不差,有的还带 2.5G 口。价钱从前年几十块炒上来,现在也不算便宜,才有人做开源固件。,社区常展开成 Passive Optical Network Wireless RouTer,简单说就是给这类 xPON 光猫用的开源固件。它基于(OpenWrt 系),专门补上 AN7581 / AN7583 的板级支持和 PON 能力。

buhuidage的博客 427

Buoyant 开源 Kinference:面向 Kubernetes 与 vLLM 的推理控制平面

Buoyant 发布 Apache 2.0 许可的 Kinference v0.1.0-alpha.7,为 Kubernetes 上的 vLLM 提供路由策略、缓存感知负载均衡和按租户计量的推理控制平面。

老孙正经胡说 338

开源交易 Agent Vibe-Trading 本地部署+回测实战

一个 3.7 万 star 的开源交易 Agent,一条 pip 命令就能装好,号称能把问题直接变成回测报告。我在没有 Docker 的环境里把它跑起来后,第一件事就是怀疑它给出的回测结论——第一次跑出的策略收益好得离谱…

2301_80281820的博客 199
上一篇: SOFA Weekly|Koupleless 社区会议预告、本周社区贡献
下一篇: SOFA Weekly|SOFABoot 新版本发布、Koupleless 社区会议回顾
SOFAStack
博客等级 码龄7年 747粉丝 389原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值