VS Code劲敌、Atom原作者主导、Rust编写的“最好”编辑器——Zed开始支持Linux

ff8caf0aec6af53817f37b48c0ebece1.png

架构师大咖

架构师大咖,打造有价值的架构师交流平台。分享架构师干货、教程、课程、资讯。架构师大咖,每日推送。

公众号

该公众号已被封禁

Zed 是一款支持多人协作的代码编辑器,由 Atom 编辑器原作者主导,其底层采用 Rust 编写、默认支持 Rust,还自带了 rust-analyzer,主打 “高性能”——作者表示希望将 Zed 打造为世界上最好的文本编辑器。

e050f000a3d7672f314e612f521875d4.png

Zed 于 2024 年 1 月份正式开源,去年刚发布时仅支持 macOS。时隔三个多月,项目团队现已开始支持 Linux。

Rust编写的Zed编辑器开源:约27万行代码、主打“高性能”

近日,Zed 官方博客详细介绍了支持 Linux 工作的最新进展,以及所面临的挑战等内容。

“一月底,我们开源了 Zed,但对 Linux 的支持为零。

现在,三个月过去了,你可以在 Linux 上编译和运行 Zed,并真正使用它。”

66523940c3d2359bc4af4b582fe868d6.png

团队表示,由于 GPUI 框架、Linux 生态系统中的各种碎片问题以及其他技术问题,Zed 的 Linux 支持工作进展并不顺利。

为 Linux 构建 GUI 应用程序的一大挑战在于,Linux 实际上并不存在。Linux 是一个内核,当你安装并运行它时,你很可能是通过一个 Linux 发行版来完成的,而该发行版也为你提供了操作系统的其他部分:Ubuntu、Debian、CentOS、Arch、Gentoo 等等。”

为了发布针对 Linux 平台的 alpha 版本,项目团队的主要事项包括:修复 86 个不同难度的剩余待办事项,让 window resizing/moving 在 Wayland 上正常工作,以及为 GPUI 实现系统对话框。

alpha 版本之后,工作重心则将放在增加对音频通话、拖放、凭证存储的支持,以确保性能始终保持在较高水平,并提高稳定性等等。

尽管可能还有很多事情要做(我甚至不想知道在 Linux 上 drag & drop 有多复杂),而且一路上还有很多未知的未知数和惊喜,但有一件事是肯定的:我们在三个月内就在 Linux 上开发出了目前的 Zed,而且还得到了那么多高质量的开源贡献,这是非常了不起的。

想在 Linux 上试用 Zed 吗?你需要 Rust、一些依赖项,还需要足够的 CPU 和内存来在合理的时间内编译它,这取决于你的耐心。

0a24644e73ec850a8412ef90d477529a.png

Zed 的 Slogan 为「Code at the speed of thought」,意思就是用 Zed 写代码的速度快得跟上了脑子

Zed 官网介绍了它与 VS Code、Sublime Text 等主流编辑器的输入延迟对比,结果当然是 Zed 完胜。

469cafc1d31a0b5fd1ef379f48376bee.png

网友表示,“实际体验下来,Zed 确实会比 VS Code 丝滑”。

Zed:

ba8abd5bfb4b5cbdeceae21287e646c1.gif

VS Code:

1866cd499d7ad6fdacaa4a620a5ca8f1.gif

aefd0285fded5bd03fc3a571e0ab3512.png

Python入门到精通

Python入门到精通:人生苦短,我用Python!Python每日推送、Python教程、Python资料、Python视频、Python项目、Python学习等。

公众号

该公众号已被封禁

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用 Rust 编写一个 3D 查看器,可以使用以下步骤: 1. 确定所需的3D引擎库。Rust 中有多个3D引擎库可供选择,例如 wgpu、glium、piston等。在这里,我们以 wgpu 为例。 2. 创建一个 Rust 项目,并使用 Cargo 管理依赖。在项目中添加 wgpu 依赖。 3. 编写代码来加载 3D 模型。这可以通过使用第三方库,例如 assimp-rs 来实现。 4. 编写代码来渲染 3D 模型。可以使用 wgpu 提供的 API 来实现。 以下是一个简单的示例代码,该代码使用 wgpu 和 assimp-rs 实现了一个简单的 3D 模型查看器: ```rust use std::path::Path; use wgpu::{BackendBit, Device, Instance, Queue, Surface}; use assimp::import::Importer; use assimp::scene::Scene; async fn run() { // 初始化 wgpu let instance = Instance::new(BackendBit::PRIMARY); let surface = unsafe { instance.create_surface(window) }; let adapter = instance .request_adapter(&RequestAdapterOptions { power_preference: PowerPreference::Default, compatible_surface: Some(&surface), }) .await .unwrap(); let (device, queue) = adapter .request_device( &DeviceDescriptor { features: Default::default(), limits: Default::default(), shader_validation: true, }, None, ) .await .unwrap(); // 加载 3D 模型 let importer = Importer::new(); let path = Path::new("path/to/your/model"); let scene = importer.read_file(path).unwrap(); // 渲染 3D 模型 // ... } fn main() { env_logger::init(); // 创建事件循环 let event_loop = EventLoop::new(); let window = WindowBuilder::new().build(&event_loop).unwrap(); let mut state = AppState::new(&window); // 运行事件循环 let event_loop_proxy = event_loop.create_proxy(); let event_loop_runner = event_loop.run(event_loop_proxy, &mut state); smol::block_on(run()); } ``` 这段代码中,我们首先初始化了 wgpu,并加载了一个 3D 模型。然后,我们可以使用 wgpu 提供的 API 来渲染 3D 模型,例如创建顶点缓冲区、着色器程序、渲染管道等。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值