首页 > 其他分享 >聊聊一个差点被放弃的项目以及近期的开源计划

聊聊一个差点被放弃的项目以及近期的开源计划

时间:2024-05-23 23:19:20浏览次数:21  
标签:单点 相册 项目 C# 认证 差点 开源 聊聊 图片

前言

自从 StarBlog 和 SiteDirectory 之后,我还没写新的关于开源项目的系列,最近又积累了很多想法,正好写一篇博客来总结一下。

关于差点被放弃的项目,就是最近一直在做的单点认证(IdentityServerLite)

IdentityServerLite

开发这个项目的起因,是团队的内部系统逐渐多了起来

实际上之前也有一个“单点认证”,不过非常简陋,甚至没有应用管理功能,多个系统都共用相同的 token ,然后在每个系统里去判断用户权限,非常不优雅也不安全。

去年底就开始计划这个单点认证项目

起初做了一些技术选型和调研,本来打算在 C# 生态里选择的,不过 C# 生态里的单点认证项目实在是少,开源的比较完善的也就 IdentityServer4 了,但这个项目已经停在了 .Net6 版本,现在这个团队已经转向商业版的开发。

IdentityServer4 我试用了一段时间,感觉功能很完善很重,不过实在是复杂,要在此基础上二次开发,增加我们需要的功能,成本不低。

接着又看了同样是 C# 生态新出的 OpenIddict ,这个相比起 Ids4 更像是一个实现了 OpenID Connect 协议的库,而不是一套单点认证方案。

既然 C# 生态不行,那我又把目光转向了其他技术栈,试用了基于 go 的 casdoor 和基于 Java 的 Keycloak ,感觉都不太符合,前者的代码有点乱,而且用起来发现有一些 bug ,要在此基础上开发的话心好累;后者还是那个问题,太复杂。

就这样,我最终打算自己开发了,接下来我花时间把 OAuth2.0 和 OpenID Connect 学了一下,又看了 IdentityServer 的部分代码,然后就在此基础上开始了单点认证项目的开发,在当时,我把这个项目命名为 IdentityServerLite,顾名思义就是轻量级的 IdentityServer

相关的技术栈是:

  • 后端 - AspNetCore, MediatR, AutoMapper, RateLimit 等(可能还有一些一时想不起来的技术,后面有空会单独写文章介绍这个项目)
  • 前端 - Next.js, Tailwind CSS, AntDesign

当开始开发之后,才发现困难重重,单点认证系统远比我想象的复杂,当然这跟我在当时对 OAuth2.0 的理解不足也有关系,而且还要接入多种外部登录方式,也给项目带来了额外的复杂性。

所以说这个项目差点就被我放弃了,我差点就想转而使用现成的单点认证方案了,不过好在后面坚持下来,并把这个项目完成了,不过代码也写得很乱就是了。

后面我会找时间重构一下,并作为开源项目发布,新的名字我也想好了,延续 StarBlog 的风格,就叫 StarSSO 好了~

扩展

另外,我后面又发现了基于 C# 的还有另一个单点认证项目,以及其他生态的项目,这里列举一下:

一些其他想法

接下来是一些其他的想法,后续有时间就会付诸实践

  • EchoSubs - 视频字幕识别、翻译服务
  • SnapMix - 随机图片接口服务
  • AIHub 2.0 - AIHub 的升级版
  • StarBlogHub - 实现一个去中心化的博客聚合平台,不同的个人博客都可以接入,共享流量

EchoSubs

之前用过一个自动对视频提取字幕并翻译的工具,是基于 OpenAI 的 whisper 模型实现的,感觉还不错,这对于看生肉(没有翻译的番剧)和网课很有用,不过那个工具是使用 PyQT 做的,并不能实现自动化操作

我想做一个服务,提供接口,用户把音频上传到 OSS,然后在 celery 里创建个任务,使用 whisper 模型去语音转文字(刚好有空闲的硬件可以用),接着再调用接口翻译。

目前已经完成了核心的 whisper 字幕识别和翻译部分,接下来写个接口,再加入 celery 和 OSS 就完事了。

SnapMix

这个是随机图片接口服务

我的 StarBlog 之前就有这个功能

不过我想博客还是更纯粹一点好

而且我想把这个随机图片的功能做得更丰富一些

比如可以支持用户注册,然后每个用户可以创建不同的相册,和不同的应用;

每个应用可以关联多个相册,这些相册有系统里公开的共享相册,也有自己的私有相册;

然后使用的时候,根据 appid 和 secret 去请求随机图片就好了

而且我还打算加入 AI 功能,可以用多模态模型对图片进行描述、识别图片的人类、对图片自动分类;

检查相似的图片,优化存储空间等。

PS:事实上最后的相似图片查找,我去年就用 C# 实现了,使用了比较简单的感知哈希和直方图方法,并且我当时是打算使用 Avalonia 来做 GUI ,不过后续搁置了,类 WPF 的开发还是难了点,后续我用 Blazor Hybrid 来做吧~

目前这个项目的技术选型,以及初版已经完成(毕竟 StarBlog 里就有这些功能)

一开始分别用 go、python、C# 都实现了一版,最后发现还是 C# 的性能高一些。

小结

其他的项目不想赘述太多了

毕竟都还没开始做

就水到这吧~ hhh

标签:单点,相册,项目,C#,认证,差点,开源,聊聊,图片
From: https://www.cnblogs.com/deali/p/18209560

相关文章

  • 开源项目分享:ChatGPT 控制台聊天应用
    开源项目分享:ChatGPT控制台聊天应用分享一个我最近完成的一个小应用,一个ChatGPT的控制台聊天应用,大家都在搞AI,我也来玩一玩,顺便分享到社区,有兴趣的小伙伴可以去我的github主页下载体验。项目简介ChatGPT控制台聊天应用基于.NET8实现,一键拥有你的私人ChatGPT,支持OpenAI(Cha......
  • 9 个开源项目、25 个课题可选丨欢迎报名阿里云云原生开源之夏
    开源之夏是由中科院软件所“开源软件供应链点亮计划”发起并长期支持的一项暑期开源活动,旨在鼓励在校学生积极参与开源软件的开发维护,培养和发掘更多优秀的开发者,促进优秀开源软件社区的蓬勃发展,助力开源软件供应链建设。参与学生通过远程线上协作方式,配有资深导师指导,参与到开源......
  • 【开源可视化报表设计器】借力实现高效率流程化办公!
    进行数字化转型、实现流程化办公,这些应该是目前很多企业都想要实现的目标吧。那么,利用什么样的软件平台可以实现?低代码技术平台拥有可视化界面、灵活操作、好维护等众多优势特点,可以借助低代码技术平台、开源可视化报表设计器的优势特点,助力企业打破信息孤岛,实现高效率流程化办公......
  • netcore 开源的与插件有关的项目
    在.NETCore生态系统中,有一些开源项目可以实现类似于插件系统的功能,允许应用程序动态加载和运行扩展或模块。以下是一些值得关注的项目和框架:1.OrchardCoreOrchardCore是一个开源、模块化的应用程序框架和内容管理系统,基于ASP.NETCore构建。它提供了强大的模块化和扩展......
  • C#应用的用户配置窗体方案 - 开源研究系列文章
          这次继续整理以前的代码。本着软件模块化的原理,这次笔者对软件中的用户配置窗体进行剥离出来,单独的放在一个Dll类库里进行操作,这样在其它应用程序里也能够快速的复用该类库,达到了快速开发软件的效果。      笔者其它模块化应用的例子:      C#的关于......
  • Vue搭建移动端h5项目(已开源,附带git地址)Vant+Vue Router+Vuex+axios封装+案例交互+部分
    一、项目介绍以及项目地址             项目介绍:vue2搭建。项目通过amfe-flexible与postcss-pxtorem实现移动端适配;通过Vantui作为项目的组件库;通过Vuex管理数据状态,进行模块化管理;通过VueRouter配置项目路由,进行模块化管理;封装axios进行数据的请求,以及一些页......
  • 推荐一个WPF仪表盘开源控件
    前段时间,做服务器端监控系统,为了界面好看,采用WPF。硬件相关监控,比如CPU、内存等,想用仪表盘控件。网上找了很多这种控件,基本上都是第三方商业控件(虽然很漂亮,不过得money...)。最后在CodeProject上找到了一款还不错的开源的仪表盘控件CircularGauge。用了下该控件,感觉还不错......
  • 这个开源投屏工具太爽了 - scrcpy
    手机投屏到电脑不少人都会用到的功能。除非手机和电脑同一品牌才会有比较好的体验(例如:华为、荣耀、苹果等)。我用的手机和笔记本非一个品牌,相信不少人跟我一样。这个时候就要找第三方投屏工具,有些要收费,而且感觉很重。直到我发现了scrcpy,已经在使用scrcpy的同学可以默默退出了......
  • 开源Blazor UI组件库精选:让你的Blazor项目焕然一新!
    今天给大家推荐一些开源、美观的BlazorUI组件库,这些优秀的开源框架和项目不仅能够帮助开发者们提高开发效率,还能够为他们的项目带来更加丰富的用户体验。注:排名不分先后,都是十分优秀的开源框架和项目​AntDesignBlazorAntDesignBlazor是一个基于Blazor的前端UI组件库,......
  • .NET下免费开源的PDF类库(PDFSharp)
    前言目前.NET体系下常见的PDF类库有Aspose、QuestPDF、Spire、iTextSharp等,有一说一都挺好用的,我个人特别喜欢QuestPDF它基于C#FluentAPI提供全面的布局引擎;但是这些库要么属于商业库价格不菲(能理解收费),但是年费太贵了。要么是有条件限制开源的,如Spire开源版本有各种限制。i......