温馨提示  2024年 6月我们已经停止内容更新,当前提供存档数据流量服务,谢谢来访。

开源

开源项目推荐

开源

全新Rust跨平台方案GPUI组件来袭

这是第一个应用:Longbridge Pro,使用 GPUI 组件构建。GPUI是一个由Zed的创建者开发的快速、高效的 Rust UI 框架 。丰富性:60 多个跨平台桌面 UI 组件。原生:灵感源自 macOS 和 Windows 控件,结合 shadcn/ui 设计,带来现代体验。易用性:无状态RenderOnce组件,简单易用。可自定义:内置Theme,ThemeColor支持多主题和基于变量的配置。用途广泛:支持诸如xs、、、和等sm尺寸。mdlg灵活布局:面板排列、调整大小和自由形式(平铺)布局的停靠布局。高性能:虚拟化的表格和列表组件,可流畅渲染大数据。内容渲染:原生支持 Markdown 和简单的 HTML。图表:内置图表,用于可视化您的数据。编辑器:高性能代码编辑器(支持高达 20 万行),带有 LSP(诊断、自动完成、悬停等)。语法高亮:使用 Tree Sitter 为编辑器和 Markdown 组件提供语法高亮。GPUI不是用electorn构建应用的方案,而是原生的。GPUI 是一个混合即时模式和保留模式的 GPU 加速的 Rust UI 框架,旨在支持各种应用程序。由于我们正在开发 Zed 代码编辑器,GPUI 仍在积极开发中,目前仍处于 1.0 版本之前。版本之间经常会有不兼容的变更。您还需要使用最新版本的稳定版 Rust,并且操作系统为 macOS 或 Linux。请将以下内容添加到您的Cargo.toml:大局GPUI根据您的需求提供三种不同的寄存器:状态管理和与EntityGPUI 的通信。当您需要存储应用程序状态并在应用程序的不同部分之间进行通信时,您需要使用 GPUI 的实体。实体由 GPUI 所有,并且只能通过类似于 `<string>` 的智能指针访问Rc。app::context有关更多信息,请参阅相关模块。GPUI 提供基于视图的高级声明式 UI。GPUI 中的所有 UI 都始于视图。视图本质上是一个Entity可渲染的对象,通过实现 `Render` Rendertrait 来实现。在每一帧开始时,GPUI 都会调用给定窗口根视图的渲染方法。视图构建一个元素树elements,使用类似 Tailwind 的 API 进行布局和样式设置,然后将其交给 GPUI 转换为像素。div有关渲染的通用工具,请参阅 `<View>` 元素。使用 Elements 构建底层命令式 UI。Elements 是 GPUI 中 UI 的构建模块,它们为命令式 API 提供了一个简洁的封装,可满足您所需的灵活性和控制力。Elements 可以完全控制自身及其子元素的渲染方式,并可用于创建高效的大型列表视图、为代码编辑器实现自定义布局,以及任何您能想到的用途。element有关更多信息,请参阅模块。每个寄存器都有一个或多个对应的上下文,所有 GPUI 服务都可以访问这些上下文。该上下文是您与 GPUI 交互的主要接口,并在整个框架中被广泛使用。其他资源除了上述系统之外,GPUI 还提供一系列较小的服务,这些服务对于构建复杂的应用程序非常有用:动作是用户自定义的结构体,用于将按键操作转换为用户界面中的逻辑运算。您可以使用它来实现键盘快捷键,例如 cmd-q。action有关更多信息,请参阅模块。平台服务,例如quit the app或,open a URL可作为方法在上提供app::App。一个与平台事件循环集成的异步执行器。executor更多信息请参阅模块说明。该[gpui::test]宏提供了一种便捷的方式来编写 GPU-UI 应用程序的测试。测试也有其自身的上下文,它TestAppContext提供了模拟常见平台输入的方法。有关更多详细信息,请参阅相关模块app::test_context。test你可以在github上看到:https://github.com/zed-industries/zed/tree/main/crates/gpui
2025-10-31 277 次阅读
开源

哪些linux开源面板比较值得使用

现在Linux服务器因其稳定性和安全性成为众多企业和个人建站的首选。可是管理Linux服务器并非易事,特别是对于新手来说,手动操作可能会带来许多困扰。对此,开源面板应运而生,它们为用户提供了一个简洁、直观的图形化界面,大大简化了服务器的管理和配置过程。下面,我们就来探讨一些在众多Linux开源面板中,较为出色的选项。 首先我们不得不提的是cPanel。虽然它并非开源,但在服务器面板领域有着极高的知名度和广泛的使用基础。cPanel提供了强大的功能,包括文件管理、域名管理、数据库管理等,操作界面也非常友好。但由于其闭源性质,成本相对较高,对于预算有限的用户来说,可能需要考虑其他开源替代品。 接下来我们来看看一些优秀的开源面板。Webmin是一个功能强大的基于Web的Unix系统配置工具,它几乎可以配置服务器的各个方面,从用户账号到应用软件的安装,许许多多。Webmin的界面相对较为传统,可能需要用户具备一定的Linux知识,但其高度可定制性和灵活性使其成为许多高级用户的青睐之选。 另一个非常流行的开源面板是VestaCP。它集成了许多常用的服务和工具,如Apache、Nginx、PHP、MySQL等,用户可以轻松地通过VestaCP完成网站、邮件、数据库等的管理。VestaCP的一大亮点是其简洁的界面设计和高效的性能,而且社区活跃,遇到问题时可以较容易地找到解决方案。 对于追求简洁和轻量级的用户,ISPConfig是一个不错的选择。它是一个开源的托管控制面板,支持多客户和多服务器管理,非常适合那些需要为客户提供托管服务的用户。ISPConfig的设置相对简单,而且资源占用较小,可以高效地在服务器上运行。 另一个值得推荐的面板是CentOS Web Panel。它专门为CentOS系统设计,提供了直观的界面来管理服务器。CentOS Web Panel支持常见的Web服务,如Apache、PHP和MySQL,并且提供了方便的脚本安装工具,帮助用户快速部署各种流行的应用软件。 最后我们来看看Plesk。Plesk是一款商业面板,但也有开源版本可供使用。它支持多种Linux发行版,并提供了一个直观的界面来管理网站、邮件和数据库。Plesk的一大特色是其强大的安全性,能够帮助用户保护服务器免受恶意攻击。 在选择Linux开源面板时,用户需要根据自己的需求、预算和技术水平进行综合考虑。有的用户可能更看重界面的友好性和操作的简便性,而有的用户可能更关注面板的性能和安全性。无论选择哪一款,这些开源面板都大大降低了Linux服务器的管理门槛,让更多的用户能够轻松地部署和维护自己的网站和应用。在享受开源社区带来的便利的同时我们也应该积极参和其中,为开源项目贡献自己的力量。
2024-05-22 40 次阅读
开源

基于Nodejs的开源博客软件推荐

现在拥有一个个人博客已成为许多技术爱好者的选择。它不仅可以分享个人的见解和经验,还能帮助构建个人品牌。对于软件开发者来说基于Node.js的博客软件因其高性能和易于扩展的特征而备受青睐。下面是一些值得推荐的Node.js开源博客软件,它们可以帮助你快速搭建起个性化的博客平台。 Hexo是一款快速、简洁且高效的博客框架,它支持Markdown语法,让用户可以轻松地使用自己喜欢的编辑器撰写文章。Hexo拥有丰富的插件系统,可以实现各种功能扩展,如站内搜索、评论系统等。除此之外Hexo的社区活跃,你可以找到许多免费且精美的主题,让你的博客独具特色。 Ghost是一个相对年轻的博客平台,以其简洁的界面和优秀的用户体验而闻名。它提供了一个直观的内容编辑器,支持Markdown,让文章创作更加便捷。Ghost的一大亮点是它的响应式设计,这意味着你的博客可以在各种设备上完美展现。同时它还提供了丰富的API,方便和其他服务集成。 WordPress是最著名的博客平台之一,虽然它主要是基于PHP的,但它的Node.js版本——wp-calypso,同样值得关注。wp-calypso是WordPress推出的一个现代化前端,它为WordPress带来了更快的速度和更好的用户体验。使用wp-calypso,你可以享受到WordPress强大的插件和主题生态,同时还能体验到Node.js带来的性能提升。 Nuxt.js是一个基于Vue.js的通用框架,它可以用来构建服务端渲染的博客系统。Nuxt.js提供了许多内置的功能,如代码分割、静态站点生成等,这些都能帮助你优化博客的性能。同时Nuxt.js的社区也在不断壮大,你可以找到许多优秀的模板和插件来丰富你的博客功能。 最后还有Hugo,虽然它本身不是基于Node.js,但在这里值得一提。Hugo是一个快速的静态网站生成器,支持Markdown,可以轻松地将文章转化为静态页面。Hugo的生成速度极快,适合那些追求极致性能的用户。而且,Hugo的主题也非常丰富,你能够依据自己的喜好进行选择。 在选择适合自己的博客软件时,需要考虑多个因素,如博客的功能需求、个人技术栈、维护成本等。上述这些基于Node.js的开源博客软件各具特色,都能为你的博客搭建提供优良的支持。你能够依据自己的需求和喜好,选择最适合的一款来开始你的博客之旅。不管是追求极致性能的Hexo、简洁优雅的Ghost,还是功能强大的WordPress和Nuxt.js,它们都能帮助你快速搭建起一个属于自己的网络空间,让思想在这里碰撞,让知识在这里共享。
2024-05-21 32 次阅读
开源

基于Nodejs的开源建站软件推荐

现在基于Node.js的开源建站软件已经成为很多开发者的首选。Node.js是一个能够在服务器端运行JS的环境,它让开发者能够使用同一门语言编写前端和后端代码,大大提高了开发效率和协同性。下面是一些广受欢迎且功能强大的基于Node.js的开源建站软件推荐。 首先我们不得不提的是**WordPress**。虽然WordPress本身是用PHP开发的,但它的Node.js版本——**Worona**,允许开发者在本地使用Node.js来构建WordPress主题。Worona提供了强大的性能优化和更现代化的开发体验,使得WordPress的开发和部署变得更加灵活和高效。 接下来是**Ghost**,它是一款专注于博客平台的Node.js开源建站软件。Ghost以其简洁的界面和优秀的用户体验而闻名,它的内容编辑器对写作者友好,支持Markdown语法,让内容的创作和排版变得轻松愉快。同时Ghost的扩展性强,社区活跃,提供了大量的主题和插件供用户选择。 另一个不得不说的是**Keystone.js**,这是一个基于Node.js的全栈开源框架,它提供了许多内置的功能,如用户管理、权限控制、数据库管理等,非常适合快速开发内容管理系统(CMS)。Keystone.js的界面友好,配置简单,支持多种数据库,包括MongoDB和SQL。 对于想要构建高性能的电商平台的人来说,**Magento**的Node.js版本——**Venia**,是一个不错的选择。Venia利用Node.js的异步非阻塞特性,优化了Magento的性能,使得大型电商网站能够更快地响应用户请求,同时保持了Magento丰富的功能和灵活性。 除此之外**Strapi**是一个新兴的Node.js开源建站软件,它是一个无头内容管理系统(Headless CMS)。Strapi允许开发者通过API接口来管理内容,非常适合构建现代的、前后端分离的网站和应用。它的优势在于高度的定制性和灵活性,开发者能够依据项目需求轻松地扩展和集成各种功能。 在提及Node.js建站软件时,**Nuxt.js**和**Next.js**也是不可忽视的。这两个框架都是基于Vue.js和React.js的SSR(服务器端渲染)解决方案,它们允许开发者创建SEO友好的网页,同时提供优良的用户体验。Nuxt.js和Next.js都提供了许多开箱即用的功能,如代码分割、路由管理等,极大地提高了开发效率。 最后**Midway.js**是一个由阿里巴巴开源的Node.js框架,它支持TypeScript,并且提供了基于IoC(控制反转)的编程模型,使得开发者能够更加关注业务逻辑,而不是繁琐的框架配置。Midway.js适用于构建企业级的Node.js应用,具有高性能和易于维护的特征。 在选择适合自己的开源建站软件时,开发者需要根据项目需求、团队技能和预期维护成本等多方面因素进行综合考虑。上述推荐的软件各具特色,无论你是独立开发者、初创公司还是大型企业的开发团队,都能在这些开源项目中找到适合自己的解决方案。通过这些基于Node.js的开源建站软件,开发者可以快速搭建起稳定、高效、可扩展的网站和应用,为用户提供更加丰富和优质的网络体验。
2024-05-21 42 次阅读
开源

Flutter版本管理器更新,fvm 3.0.0-beta.5

Flutter是一种流行的跨平台移动应用开发框架,它允许开发人员使用相同的代码库创建iOS和安卓应用程序。为了管理Flutter项目的版本,开发人员通常使用版本控制系统,例如Git。可是,fvm是一个新的版本管理器,专门为Flutter项目设计,以简化版本控制和更新过程。fvm是一个命令行工具,用于管理Flutter项目的版本。与传统的版本控制系统不同,fvm更加简单和直观,因为它专门为Flutter设计。通过fvm,您可以轻松地切换到不同的Flutter版本,测试新的功能和修复程序,并快速恢复到之前的版本。使用fvm非常简单。您只需要打开终端并运行以下命令:``` fvm use ``` 其中,``是您要使用的Flutter版本号。比如,如果您要使用Flutter 1.19.14,您可以运行以下命令:``` fvm use 1.19.14 ``` 一旦您选择了要使用的Flutter版本,fvm将自动更新您的项目以使用该版本。您还可以使用以下命令查看可用的Flutter版本:``` fvm versions ``` fvm还提供了一些其他有用的命令,例如:* `fvm clean`:清除缓存和构建输出。 * `fvm install`:安装所需的依赖项。 * `fvm revert`:恢复到先前的Flutter版本。 * `fvm diff`:比较当前Flutter版本与先前版本的相差之处。fvm是一个非常有用的工具,可以帮助您更轻松地管理Flutter项目的版本。它专门为Flutter设计,使您能够更快地开发和测试新功能,同时防止手动更新和配置的过程。如果您正在使用Flutter开发项目,那么fvm是一个值得尝试的工具。AddedTighter VSCode integration, with configuration and settings management. FVM will now automatically configure VSCode to use the correct Flutter SDK version, triggering a termianl path update, so you can just use flutter, commands instead of fvm flutterGit Flutter repository mirroring for faster cloning of new versions.Added a check in .gitignore for the '.fvm' directory, and auto-adding it if necessary.Added verification if cached Flutter SDK has been upgraded, and provide options for corrective actions.Added a check for Flutter SDK constraints check for compatibility with current project.Improved FVM configuration management and settings.Ability to override FVM settings on a per project basis.Windows "unpriviledge" mode. If you you choose to run fvm in unpriviledge mode, it will not require admin rights to run, however local Flutter SDK project references will be absolute paths instead of relative links.ImprovementsMuch improved DX with better error messages and logging, and more helpful information and how to proceed.Color output when using fvm flutter command proxy.Better SDK switching workflow per project. Handle more edge cases, by doing SDK comparisons.Better fvm doctor command. Now provides much better output and information about the project and environment.Better Dart SDK environment support, minimizes conflicts between multiple environment Dart SDKs.Improved fvm releases output.Improved fvm list output.Better error checking for fvm global command.FVM update check now runs only once a day.You can disable update check with the --update-check flag on fvm configChangedCommand fvm releases now defaults to stable channel. Use --all flag to see all releases, or filter by channel.Removed "flavor" command in favor for fvm use {flavor}Removed "destroy" command in favor of fvm remove --allConfig file is now .fvmrc instead of .fvm/fvm_config.json, and .fvm can be added to .gitignore, FVM will migrate it automatically.You can now use fvm use {version} --env {flavor} as an alias for flavor. Might be deprecated in the future since env has become a better description for environment specific settings than flavor.When installing or using a Flutter repo commit hash, hash needs ot be 10 digits. FVM will now validate it, and provide the correct hash if it can.Breaking ChangesDefault FVM config location is now .fvmrc instead of .fvm/fvm_config.json. FVM will migrate it automatically. However .fvm should be ignored, if you depend on fvm_config.json in your tools or CI, you should update your configuration.fvm install - Will not setup by default. Use --setup flag to setup Flutter SDK. Flag --skip-setup is removed.fvm releases - Defaults to stable releases. Use --all flag to see all releases, or filter by channel using --channel {channel}.fvm flavor - Removed in favor of fvm use {flavor}.fvm use - Will always setup by default. Use --skip-setup flag to skip setup.Environment variables FVM_HOME is now FVM_CACHE_PATH.Environment variables FVM_GIT_CACHE is now FVM_FLUTTER_URL.
2023-10-07 64 次阅读
RuleGo Go 语言的轻量级、高性能、嵌入式、可编排组件式规则引擎
开源

RuleGo Go 语言的轻量级、高性能、嵌入式、可编排组件式规则引擎

随着项目逐渐发展,业务和代码量越来越多,耦合严重,层次混乱,难以维护和扩展,系统与系统之间公共代码无法复用,也无法进行高效便捷的联动。 另外某些业务场景高度定制化或者经常变动,需要频繁修改代码和重启系统,影响开发效率和用户体验。为了解决这个问题,RuleGo 作为一个为解耦逻辑、可实时响应需求的规则引擎应运而生。🏆优势RuleGo 是一个基于 Go 语言的轻量级、高性能、嵌入式、可编排组件式规则引擎。它可以帮助你快速构建低耦合、灵活的系统,实现复杂的业务逻辑。RuleGo 是一个非入侵式的框架,你可以把它嵌入到你现有的项目中,无缝地利用它的特性,也可以作为一个独立运行的可编排式规则引擎服务。RuleGo 还支持动态加载组件和扩展组件,让你可以随时修改和优化你的业务流程,实现快速迭代和响应变化。RuleGo 还提供大量可复用的组件,支持对数据进行聚合、过滤、分发、转换、丰富和执行各种动作,也能和各种协议、系统进行联动和集成。让你快人一步实现自动化营销、物联网、应用集成等解决方案。你只需要通过简单的配置和编排方式,不需要学习任何的规则语言或DSL,就可以利用 RuleGo 提供的丰富的组件,实现你想要的功能。另外RuleGo提供了便捷的自定义组件化接口,你可以把业务逻辑封装成一个个可复用的组件,剩下的交给RuleGo,它可以为你打造一个高效、可维护、可扩展的系统。相对于传统规则引擎,RuleGo 采用了一种全新的规则引擎模式,即基于规则链的可编排组件式规则引擎。它有以下特点:简单性:使用 JSON 来配置规则链,无需使用任何专门的规则语言或 DSL,只需要使用常见的数据结构和语法,就可以轻松地定义和修改规则链。高效性:使用有向无环图来表示规则链,每个输入消息只需要沿着图中的路径进行处理,无需匹配所有的规则,这大大提高了消息处理的效率和速度,也节省了资源和时间。灵活性:支持动态配置和修改规则链,无需重启应用程序或重新加载规则,就可以实时地更新和应用规则链,这非常适合业务的快速变化和迭代。🚀特性轻量级: 无外部中间件依赖,既可以下沉到边缘服务器,实现物联网边缘计算解决方案,也可以部署在云端,作为规则引擎服务。高性能: 得益于Go的高性能特性,另外RuleGo采用协程池和对象池等技术。对10W条数据进行JS脚本过滤->JS脚本数据转换->HTTP推送 处理,平均用时9秒。嵌入式: 支持把RuleGo嵌入到现有项目,非入侵式利用其特性。组件化: 所有业务逻辑都是组件,并能灵活配置和重用它们。规则链: 可以灵活地组合和重用不同的组件,实现高度定制化和可扩展性的业务流程。流程编排: 支持对规则链进行动态编排,你可以把业务地封装成RuleGo组件,然后通过搭积木方式实现你高度变化的业务需求。扩展简单: 提供丰富灵活的扩展接口和钩子,如:自定义组件、组件注册管理、规则链DSL解析器、协程池、规则节点消息流入/流出回调、规则链处理结束回调。动态加载: 支持通过Go plugin 动态加载组件和扩展组件。内置大量组件: 消息类型Switch,JavaScript Switch,JavaScript过滤器,JavaScript转换器,HTTP推送,MQTT推送,发送邮件,日志记录 等组件。可以自行扩展其他组件。上下文隔离机制: 可靠的上下文隔离机制,无需担心高并发情况下的数据串流。🪁架构图RuleGo架构图RuleGo根据 规则链定义 处理输入的消息/事件,规则链编排引擎 驱动规则链组件完成各种业务,如:消息路由、消息处理、消息增强、消息分发、执行动作/业务,或者与第三方系统联动。规则链定义支持热更新 ,动态替换各组件业务逻辑。规则链处理消息/事件流程图如下图:规则链流程图🎈代码托管Gitee | Github
2023-10-07 53 次阅读