Casbin 明日之星预选生计划-Talent for Casbin 2021
“Casbin 明日之星预选生计划-Talent for Casbin 2021”是什么?
“Casbin 明日之星预选生计划-Talent for Casbin 2021”(以下简称 Talent 2021 )是由 Casbin 开源社区举办的一项面向高校学生的编程活动,旨在鼓励在校学生积极参与 Casbin 社区旗下开源软件的开发维护,促进国内优秀开源软件的蓬勃发展。
2020 年,Casbin 以开源社区的身份首次参加了由 Google 公司主办的Google Summer of Code 2020 和由中科院软件所、OpenEuler 社区主办的开源软件供应链点亮计划-暑期 2020 。在上述活动中,Casbin 社区共派出 7 位来自国内外(中国、法国等)互联网一线的资深社区导师,共培养、指导了国内外 15 名学生( 14 位中国同学、1 位印度同学)进行为期 3 个月的开源编程活动。Casbin 项目已毕业的同学,有的成长为 Casbin 项目核心维护者、以开源大牛的身份活跃于 GitHub,有的毕业后全职加入腾讯微信事业部等互联网头部公司,有的凭借在 Casbin 社区的出色经历拿到全球顶级投行 Morgan Stanley (摩根士丹利)的 offer,在工业界和学术界发挥着重要作用。
为了在非暑期时间能够继续促进 Casbin 开源软件的发展,同时挖掘有潜力的学生作为明年 Google Summer of Code 2021 和暑期 2021 (若该赛事仍举行并且 Casbin 社区获得参加资格)的有力竞争者,Casbin 社区将自筹资金,在 Google Summer of Code 等活动的闭幕期间,开展常态化的“Casbin 明日之星预选生计划-Talent for Casbin 2021”活动,针对 Casbin 社区旗下开源软件的开发与维护提供 mini 项目,并向全国高校学生开放报名。学生可自主选择感兴趣的项目进行申请,并在中选后获得该软件资深维护者(社区导师)亲自指导的机会。
根据项目的难易程度和完成情况,参与者可获取“Casbin 明日之星预选生计划-Talent for Casbin 2021”活动奖金和加盖 Casbin 社区公章的参与(实习)证明。
“Talent 2021”项目在 2021 年首次举办,与 Google Summer of Code 等活动类似,不同点是“Talent 2021”在非暑期时间举行,与 GSoC 等活动是互补的关系。
- Casbin 明日之星预选生计划-Talent for Casbin 2021 官网: https://github.com/casbin/Talent2021
- Google Summer of Code 官网: https://summerofcode.withgoogle.com/
- Google Summer of Code 中文介绍: https://github.com/gsoc-cn/gsoc-cn 或 https://zhuanlan.zhihu.com/p/27823910 或 https://zhuanlan.zhihu.com/p/27330699
- 开源软件供应链点亮计划-暑期 2020 官网: https://isrc.iscas.ac.cn/summer2020 或 http://www.iscas.ac.cn/xshd2016/xshy2016/202004/t20200426_5563484.html
活动的主要参与方有哪些?
活动组织方:Casbin 开源软件社区。
活动参与方主要角色为学生和导师。
- 学生:学生自由选择项目,与导师沟通实现方案并撰写项目计划书。被选中的学生将在导师指导下,按计划完成开发工作,并将成果贡献给社区。社区评估学生的完成度,主办方根据评估结果发放资助金额给学生。
- 社区:社区提供项目列表和描述,并安排项目对应的导师,导师与申请者沟通方案、并从申请者中选中一位承接项目。在为期三个月的开发周期中,导师指导学生进行对应项目的开发工作。
- 导师:社区针对每一个项目指定一个导师,与学生一起制定合适的开发计划和方案,指导学生按计划完成开发。
本项目的资助额度是多少?
资助金按月发放,分为基础资助金:500 元 + 奖金:0~500 元
(均为每月税后,根据上手快慢程度及技术栈匹配程度会有浮动,项目开始前会协商好。)
Casbin 开源项目介绍
Casbin 是一个强大的、高效的开源访问控制框架。涉及到 Go, Java, Node.js, Javascript (React), Python, PHP, .NET, C++, Rust 等多种语言。Casbin 由北京大学罗杨博士创立于 2017 年,核心维护团队有数十人。Casbin 在业界具有广泛影响力。目前已经被 Intel 、VMware 、Orange 、RedHat 、T-Mobile 等公司开源使用,被腾讯云、Cisco 、Verizon 等公司闭源使用。具体详见 Casbin 主页。Casbin Go 主项目目前 GitHub 7700+ stars,加上所有语言的实现、插件等可达到 10000+ stars 。Casbin 曾经在国际上多次宣讲:
- 新加坡政府技术部门 Open Government Products: https://www.youtube.com/watch?v=OTT84oplR9o
- 俄罗斯最大在线旅游平台 tutu.ru: https://www.youtube.com/watch?v=Z5dUxH4PqYM
具体请了解 Casbin 官网: https://casbin.org/
可选项目列表
下列所有项目都与 Casbin 一致,采用开源协议:Apache 2.0 license
3. Casbin-Lua 开发( Lua )
- 项目标题:Casbin-Lua 开发( Lua )
- 项目描述:开发 Lua 版本的 Casbin,支持 Nginx 、OpenResty 等 Lua 生态。
- 项目难度:高
- 项目社区导师:罗杨 (hsluoyz)
- 导师联系方式: [email protected]
- 合作导师联系方式(选填):无
-
项目产出要求:
-
项目技术要求:
- 熟悉 Lua 语言
- 熟悉 Nginx 、OpenResty 等
- 熟悉 Git 、GitHub 相关操作
-
相关的开源软件仓库列表:
4. Casbin-RS 生态完善( Rust )
- 项目标题:Casbin-RS 生态完善( Rust )
- 项目描述:Casbin 在初始化时将规则集装载到内存中,在规则集发生变更时将该次变更持久化到文件或者数据库等媒介。我们希望在此基础上:1 )基于 Raft 协议实现单机、分布式环境中不同 Casbin 实例的规则集同步;2)探索如何将规则集分组,映射到不同节点,使特定规则集的增,删以及某个请求的权限计算都在正确的节点进行,以此减轻单机的内存压力
- 项目难度:高
- 项目社区导师:江成 (GopherJ)
- 导师联系方式: [email protected]
- 合作导师联系方式(选填):无
-
项目产出要求:
- 基于 Raft, Tcp (with TLS)实现单机、分布式环境中不同 Casbin 实例之间的规则集同步
- 正确,充足的单元 /集成测试,确保 Casbin 在分布式环境下运行的正确性
- 支持动态增、删节点(AKA. dynamic membership)
- 探索如何将规则集分组,映射到不同节点,确定规则集的增,删以及某个请求的权限计算都在正确的节点进行,以此减轻单机的内存压力
- 解决 Casbin Rust 主仓库&相关仓库中的 issues: https://github.com/casbin/casbin-rs/issues
-
项目技术要求:
- 熟悉 Rust 语言
- 熟悉 Git 、GitHub 相关操作
-
相关的开源软件仓库列表:
6. PyCasbin 生态完善( Python )
- 项目标题:PyCasbin 生态完善( Python )
- 项目描述:PyCasbin 是 Casbin 的 Python 版实现,功能和 Casbin ( Golang )基本一致。目前,PyCasbin 实现了 Casbin 的主要功能,但还有少许功能尚未实现,另外代码质量还有调优的可能,PyCasbin 对周边框架的支持不够完善,所以我们希望对 PyCasibn 进行完善和优化,同时需要对 PyCasin 的生态予以完善。
- 项目难度:中
- 项目社区导师:罗杨 (hsluoyz)
- 导师联系方式: [email protected]
- 合作导师联系方式(选填):无
-
项目产出要求:
-
项目技术要求:
- 熟悉 Python 语言
- 熟悉 Casbin 其他任意一种语言的实现
- 熟悉 Git 、GitHub 相关操作
-
相关的开源软件仓库列表:
所有可选项目详见: https://github.com/casbin/talent2021#可选项目列表
候选人要求
工作职责:
- 每周与项目导师进行线上讨论,完成项目规定的开发任务。项目导师由开源项目创始人或其他核心成员担任;
- 积极参与开源社区的建设,参与代码提交、解决 Issue 、审核 PR 等日常工作;
- 配合完成官方要求的材料提交等事项,包括项目申请书撰写、社区反馈任务完成度追踪等。
职位要求:
- 本科、硕士或博士(已毕业、工作的无法参加 GsoC,只能获取奖金及参与证明。);
- 对开源软件、开源社区感兴趣;
- 熟悉一种或多种编程语言,有较强的工程能力,代码格式清晰规范,善于团队协作;
- 有一定英文读写能力,能够熟练运用英语在 GitHub 进行开发、协作;
- 较强的沟通能力和逻辑表达能力。
具有以下条件者优先:
- 熟悉 Go, Javascript 、React 等语言或框架、分布式系统、微服务架构,有相关项目经验;
- 在 GitHub 较为活跃,有自己的开源项目,或参与过知名开源项目;
- 可以在项目结束后继续长期参与开源社区的开发、建设或维护。
投递要求
申请学生需要同时完成以下“联系社区”和“官网投递”两个环节:
1. 联系社区( 2021 年 1 月 1 日 - 2021 年 2 月 28 日)
- 加入《 Casbin 访问控制社区群》( QQ 大群):546057381
- 加入《 Casbin 明日之星预选生计划-Talent for Casbin 2021-群》( QQ 小群):540163681 ,联系导师,与导师沟通项目细节和方案,完善项目申请书
2. 官网投递( 2021 年 1 月 1 日 - 2021 年 2 月 28 日)
发送 [中文简历 PDF ] 至 Casbin 社区官方邮箱: [email protected]