King Triton‘s Ocean

<数据集>咖啡叶片病害识别<目标检测> YOLO与VOC格式的咖啡叶片病害识别数据集,适用于YOLO系列、Faster Rcnn、SSD等模型训练,类别:Cercospora、Miner、Phoma、Rust,图片数量1744。文件中包含图片、txt标签、指定类别信息的yaml文件、xml标签,已将图片和txt标签划分为训练集、验证集和测试集,可直接用于YOLOv5、YOLOv6、YOLOv7、YOLOv8、YOLOv9、YOLOv10、YOLOv11、YOLOv12、YOLOv13、YOLOv26等YOLO系列算法的训练。 阅读详情

King Triton’s Ocean

you will be implementing some unfinished Rust code which models a mythical ocean ecosystem populated by crabs that live on beaches, and various prey they hunt in reefs.

These crabs have names, and come in any and all colors. Groups of them live together (and reproduce) at beaches along the coast line. Once the sun sets, they head out to their favorite reefs to hunt for food that matches their tastes. Some crabs only eat fish, some only shellfish, while yet others are vegetarian.

Luckily, the reefs dotting this ocean are populated with plenty of prey that fit into each crab’s dietary preferences. However, finding the right reef with the right food can prove a challenge.

It’s a tough life for a crab out there.

Learning Goals

By the end of this assignment you should have gained some hands-on experience the basics of the Rust language, as well as some features peculiar to its ownership model.

  • Functions
  • Structs
  • Methods
  • Trait Objects
  • Mutable vs Immutable References
  • Smart Pointers
    • Single Ownership (Boxes)
    • Multiple Ownership (Reference-counted Boxes)

This assignment is not intended to be algorithmically challenging, but rather to be something of a guided tour through some of Rust’s distinct characteristics. No individual task should be too complicated to implement, and almost all have corresponding tests you can use to check your progress as you work.

Instructions

If you are unsure about how to do something in Rust, you should probably first consult the Rust Book.

Submission

You should only modify and submit the following files:

  • beach.rs
  • color.rs
  • crab.rs
  • ocean.rs
  • reef.rs

Any changes made to other files will be ignored by the autograder, which will always use the originals.

Running Tests

You can run all tests with cargo test, and all tests with a given prefix with cargo test <prefix>.

To make things easy, all of the tests in this assignment are named according to the following convention:

cargo test part${n}_${entity_name}_${tested_behavior}

For example, to run all tests that relate to Crab from Part 1, you can simply run:

cargo test part1_crab 

By default, cargo captures the console output of your code while running tests. However, while working on this assignment you might want to use print! or println! while running your tests to debug. You can do this by passing the --nocapture flag while running tests after --, which separates test names from flags.

For example, to run tests involving the crab hunting tasks in Part 2 while showing console output:

cargo test part2_crab_hunt -- --nocapture

You should read the tests carefully. They may serve as examples of unfamiliar syntax, and even provide some useful insights into how to implement some of the later tasks.

Writing Tests

You should not modify the contents of the tests/public.rs file.

However, you may find it useful to write your own tests in tests/student.rs.

These tests will be ignored by the autograder, so don’t worry if they don’t pass.

Part 1. Basic

We will first implement a simple model of a Crab, and then a Beach which contains zero or more crabs. In this manner, we demonstrate how to define and work with single objects as well as collections in Rust. We will also implement a function for breeding crabs.

For this part, you will not have to worry about lifetimes, and ownership should be straightforward: just simple borrows and dereferences as shown in lectures.

Tasks

Simple Functions and Methods

First, implement the missing bits in crab.rs and color.rs:

  • color.rs
    • The cross function, which crosses two colors by performing wrapped arithmetic.
    • Refer to the specification in the function’s doc string for more details. Note that Rust, being a “safe” language, handles arithmetic operations much more strictly than you may be used to, and the “obvious” solution here is not the correct one and will panic.
    • Documentation for Primitive Type u8
  • crab.rs
    • A new function according to the given signature.
    • The name, speed, color and diet fields on Crab and corresponding accessor functions.

You should now have the following tests passing:

  • part1_color_cross_no_panic
  • part1_crab_new

Crabs & Braches

Then, implement the missing functions in beach.rs:

  • A new function according to the given signature.
  • size: returns the number of Crabs on the beach.
  • add_crab: adds a Crab to the beach.
  • get_crab: returns a reference to a Crab at the given index.
  • get_fastest_crab: returns None if the beach is empty. Otherwise, return Some of a reference to the Crab with the highest speed.
  • breed_crabs: uses the functions in diet and colors to breed two crabs, resulting in a new Crab.
    • You will want to add a new breed function to Crab to avoid exposing Crab implementation details.
    • The new Crab should have its diet selected randomly using the provided Diet::random_diet.
    • The new Crab should have its color computed by Color::cross from before.
    • The new Crab should have a speed of 1 (babies go slowly).
  • find_crabs_by_name: returns a vector of references to crabs with the given name.

The tests for these functions are:

  • part1_beach_add_get_crab
  • part1_beach_iter_crabs
  • part1_beach_size
  • part1_beach_fastest_empty
  • part1_beach_fastest_fastest_first
  • part1_beach_fastest_fastest_second
  • part1_crab_breeding
  • part1_crab_find_by_name

Notes

  • If you are accustomed to functional-style programming, you may find methods on std::slice::Iter useful or more natural to implement get_fastest_crab, find_crabs_by_name, and some functions in the next part.

Part 2. Advanced

While working on this section, you should consult some sections of the Rust Book for guidance and examples.

We will make use of trait objects to represent Prey that Crabs go out and hunt. Trait objects are often used in similar places to interfaces, abstract classes in other languages like Java, Go, and C++, though they differ in some ways. They allow us to refer to something which implements a given trait.

We will also make use of smart pointers to heap allocations: both single-ownership Box<T>, and multiple-ownership (reference-counted) Rc<T>. The referents of smart pointers in Rust are immutable. Therefore, in order to represent a pointer to something mutable, we use Box<RefCell<T>> or Rc<RefCell<T>>. This is a common, but cumbersome, design pattern in Rust that results from some of the choices made in the design of the language.

Things to Note in the Starter Code

In prey.rs note (but not modify) the definitions:

  • pub trait Prey: defines the interface which all Prey must implement.
    • The diet method returns the kind of Diet this Prey is compatible with.
    • The try_escape method returns whether or not this Prey can escape from a given Crab, in a given Reef.
      • This method is side-effecting, and can therefore mutate the Prey it is called on, such as with the Shrimp.

In reef.rs, you should take note of a few facts:

  • A VecDeque is Rust’s standard library queue structure.
    • It can be used as a double-ended queue, but here we are only using it as a single-ended queue.
  • We had to declare the prey field of struct Reef using the dyn keyword.
    • However, VecDeque<dyn Prey> would not work, because the size in memory of dyn Prey is not known at compile time. Therefore, we use Box<dyn Prey>, which represents a pointer to something implementing Prey on the heap.

Tasks

Lifetimes with Recipes

First, let’s look at a simple example of where explicit lifetime annotations are needed. It turns out that our crabs like to cook their food before they eat it (this is a mythical ocean, remember?). In crab.rs implement:

  • choose_recipe: returns a recipe from the Cookbook that matches the Crab’s diet.
    • This is the only case in this assignment where you will need to modify the signature of a method.
    • You should only add lifetime annotations.

Implementing Reefs

Next, let’s implement the missing methods on reef.rs. A Reef is a wrapper around a queue of Box<dyn Prey>. We use a queue here as we will later have a Crab take Prey from the Reef, and potentially put it back. Using a queue removes the need to keep track of indices and supports both fast insertion and removal at the ends.

  • new
  • add_prey: push prey to the back of the reef.
  • take_prey: pop prey from the front of the reef.

At this point the test part2_reef_add_take_prey should pass.

Next, add a reefs field to struct Crab with an appropriate type. Consult discover_reef for some ideas. Note that multiple crabs can share the same Reef, and both can mutate it. We represent a reference-counter/multiply-owned pointer with Rc, and a cell containing a mutable reference with RefCell. Put together: Rc<RefCell<Reef>>.

Then, in crab.rs, implement:

  • discover_reef: add a reef to a Crab’s list of reefs.
    • There is no corresponding forget_reef, but you are welcome to add one if it helps you write your own tests. We will ignore it.

At this point the test part2_crab_discover_reefs should pass.

Catching Prey and Going Hunting

Crabs in this ocean hunt in a very particular way. They are greedy, but they will never try to catch the same prey twice. In this manner, they avoid getting stuck chasing the same uncatchable prey all day long. When a Crab catches Box<dyn Prey>, it removes it from the reef, since a Box can only have one owner.

  • catch_prey: catch some Prey from one of the Crab’s reefs and return Some of it and the index of the Reef it came from, or None if none can be found.
    • Consult the docstring for specific details.
    • In order to call take_prey on one of the Reefs stored in a Rc<RefCell<Reef>>, you will need to borrow mutably from it.
      • Consult the documentation and relevant Rust book chapter to figure out which method to use.
      • You may also find it helpful to look at some of the tests.
  • release_prey: release Prey back into the Reef at the given index.
  • hunt: implements the hunting behavior of the crab.
    • Consult the docstring for full pseudocode for this method, as it is a bit more involved than any so far.

Note that the latter of these two methods are not public. They are implementation details, and helper functions to implement hunt.

You should now have the following tests passing:

  • part2_crab_hunt_empty_reef
  • part2_crab_hunt_escaped_prey
  • part2_crab_hunt_incompatible
  • part2_crab_hunt_success

The Ocean Itself

So far, you’ve been tasked with using smart pointers from the callee side. That is, you have always received them from elsewhere, but have not had to construct them or in the case of Rc take additional references to them yourself using Rc::clone.

We will now define Ocean, which provides an interface to many of the definitions implemented so far.

First, in ocean.rs, add appropriate struct fields to back the beaches and reefs accessors. Then, implement the missing methods:

  • new
  • add_beach: adds a beach to this Ocean
  • beaches: returns an iterator over this Ocean’s beaches.
  • reefs: returns an iterator over this Ocean’s reefs.
  • generate_reef: generates a reef with the number of each type of prey specified in the arguments, adds a reference to it to this Ocean’s reefs, and returns a reference.
    • This will require creating both kinds of smart pointers used so far (Box, Rc) as well as RefCell.
    • Note that you will need to get a second reference to an Rc here as well, since you need one to add to reefs, and one to return.

Tip: start by considering Algae only, getting part2_ocean_generate_algae_only passing.

You should now have the following tests passing:

  • part2_ocean_generate_algae_only
  • part2_ocean_generate_algae_bountiful

Clan Competitions

The crabs in King Triton’s Ocean like to socialize by forming different clans and competing among themselves. Using the clan system, the crabs can join a clan and engage in the competition. Multiple crabs can belong to the same clan, but a crab cannot join more than one clan. Every beach has a clan system in place.

Your task is to extend the existing model for beaches and clans. Note: Every clan has a unique clan id, and for the purposes of this task, every crab will have a unique name.

In clans.rs , add appropriate fields, add a new method, and complete the following methods with the given signatures:

  • get_clan_member_names: returns a list of the member names for the given clan id.
  • get_clan_count: returns the number of clans currently in existence.
  • get_clan_member_count: returns the number of members for the given clan id.
  • get_largest_clan_id: returns the id of the clan with the most number of crabs, or None if such a clan does not exist.

In beach.rs, add a field for the ClanSystem, update existing methods where necessary and complete the following methods with the given signatures:

  • get_clan_system: returns a reference to the clan system associated with the beach.
  • add_member_to_clan: adds a crab that lives on the beach as a member for the given clan id and crab name. If a clan with this id does not exist, create one. You may define and call a method in clans.rs to perform this operation.
  • get_winner_clan: returns the id of the clan that wins the competition given two clan ids and returns a Result type. The winner is decided based on the average speed of the clan members. Return None if there are no clear winners between two different existing clans. If the inputs are invalid, return an Err string.

You should now have the following tests passing:

  • part3_clans_get_clan_member_names_zero
  • part3_clans_get_clan_member_names
  • part3_clans_get_clan_member_count_first
  • part3_clans_get_clan_member_count_all
  • part3_clans_get_clan_count_zero
  • part3_clans_get_clan_count_all
  • part3_clans_get_largest_clan_id_empty_beach
  • part3_clans_get_largest_clan_id_first
  • part3_clans_get_largest_clan_id_second
  • part3_beach_get_winner_clan_empty_beach
  • part3_beach_get_winner_clan_tie
  • part3_beach_get_winner_clan

Submitting your Work

That’s it! You’re done!

You should double check your tests all pass by ensuring all files have been saved and then running cargo clean and cargo test.

You should submit the following files to Gradescope:

  • beach.rs
  • color.rs
  • crab.rs
  • ocean.rs
  • reef.rs
【Zephyr存储专题】09_LittleFs文件系统操作 本文档旨在为开发者介绍Zephyr下Littlef's文件系统相关配置使用指南 阅读详情

相关推荐

quartus 13.1常见报错解决方法

在使用quartus中会遇到很多由于安装或设置不规范造成的错误。我就目前我遇到的一些错误以及我的解决方法分享给大家,这个文章将会持续更新,如果读者有遇到软件中错误无法解决的问题,也欢迎在评论区留言。 一、编译出现lience错误 在对设计的电路编译时,系统在程序运行3秒内即结束并报错,大概意思为现有的证书不支持编译。这个常见问题源自破解不成功,这里读者很有可能犯的错误是在使用破解器的时候没有区分x86(即32-bit)和x64软件破解器对应的文件夹。 如图所示有两种破解器,分别对应32位和64位的软件,大部

肥宅的博客 3万+

组网第63课:安全域划分——Trust/Untrust/DMZ、区域模型、与 VLAN 的关系

一组接口 + 一组策略 + 一条默认拒绝。一组接口:这个域包含哪些物理口、VLAN、子接口;一组策略:这个域到别的域放行什么、拒绝什么;一条默认拒绝:没写进策略的,一律不通。第三条最关键。没有默认拒绝,前面划的域全是装饰。

qq_36765170的博客 514

上网第二课:办了百兆宽带,为什么测速只有一半?

最慢的那一环。

qq_36765170的博客 110

GitHub 热榜项目:日榜(2026-11-07)

给编码智能体配技能的项目最热:cloudflare/security-audit-skill 把审计拆成六阶段并输出可验证 JSON,新增 2,548 星;mattpocock/skills 把工程技能放进 .agents 目录,新增 2,070 星。Web 应用框架也有四个项目集中上榜,以 react/react 为代表。

u130130的博客 387

frp 内网渗透案例:端口转发 + 二级代理(深入理解 frp 在内网渗透中的技巧)

本文使用 vulnstack7 靶场作为测试环境,解释 frp 内网渗透特殊使用姿势,通过此案例来提高内网渗透能力。接下来的演示环境只做了以下修改。攻击者 vps 的 ip 修改为:192.168.72.162。DMZ 区域的 ubuntu 的 ip1 修改为:192.168.72.129。先引入问题,当我们控制了 DMZ 的 ubuntu 并且拿到第二层网络的 ubuntu 的 rce 后,会出现以下两个问题。如何搭建隧道让 ubuntu 反弹 shell 给攻击者 vps?

anddddoooo的博客 1765

vivado Block Design 设计 .tcl 文件使用,导出,修改,添加方式

在vivado中生成 Block Design可以导出tcl文件进行保存(体积小),或者在别的版本vivado中打开(版本互通),这是一个非常好的功能。另外GitHub中很多项目都是采用这种方式上传的,学会如何使用可以快速修改历程项目。

2203_75345038的博客 2494

GitHub 热榜项目:日榜(2026-11-06)

给编码智能体补工程与产品技能是本期最明显的一类,mattpocock/skills 把需求对齐、TDD、缺陷诊断做成小技能。NVIDIA/auto-ontology 从企业元数据生成本体、构建知识图谱,为 LLM 提供带来源追溯的自然语言查询和 SQL 生成,新增 2,679 星;vercel-labs/agent-desktop 通过桌面无障碍树把界面元素转成 JSON 和可操作 ref,让智能体不必截图就能点击输入,新增 2,173 星。

u130130的博客 457

CoMP 协同多点传输技术

CoMP CoMP是什么 解决什么问题 有什么缺点 CoMP(Coordinated Multiple Points)协同多点传输,通信术语,LTE-A的重要技术之一。 CoMP传输是指地理位置上分离的多个传输点,协同参与为一个终端的数据(PDSCH)传输或者联合接收一个终端发送的数据(PUSCH),参与协作的多个传输点通常指不同小区的基站。CoMP技术将边缘用户置于几个基站的同频率上,几...

ilean_J的博客 2万+

GitHub 热榜项目:日榜(2026-11-10)

本期共 11 个热门开源项目,合计新增 13,136 stars。榜单前三分别是 Anthropic 的 Agent Skills 仓库、Meta 开源的 React 设计系统 Astryx(+3,278)和用户名检索工具 sherlock(+4,267,本期涨星最多)。其余项目覆盖 DeepMind 的物理引擎 MuJoCo、Claude 官方示例集、自托管智能体记忆系统 GBrain、用 Rust 写的浏览器自动化 CLI、基于 WiFi 信号的人体感知平台 RuView、多市场股票分析工具,以及 Ho

u130130的博客 374

别再只改config了!YOLO/RT-DETR多通道输入实战:数据集结构、多卡训练与参数优先级避坑指南

本文详细解析了YOLO/RT-DETR模型在多通道输入(如8通道多光谱图像)中的实战应用,涵盖数据集结构优化、数据加载器改造、模型参数调优及多卡训练配置。针对常见的多通道输入报错问题,提供了系统的解决方案和性能优化技巧,帮助开发者高效实现非标准数据格式的适配与训练。

weixin_30955617的博客 397

华为数通---配置风暴控制案例

风暴控制可以通过阻塞报文或关闭端口来阻断广播、未知组播和未知单播报文的流量。

2301_77081516的博客 1624

【Rust 手搓 Win11 灵动岛】① 从零搭骨架:无边框置顶窗口 + 工作区精确停靠

项目“岛仔”(daozai)是基于 Rust 与 eframe/egui 构建的 Win11 灵动岛桌面应用,采用窗口恒定展开、胶囊自绘方案实现无抖动丝滑动画。本篇聚焦 M1 里程碑:通过 Win32 获取工作区避让任务栏,解决创建期 DPI 缩放误传问题——虽首帧补偿逻辑因误解 ViewportCommand 单位而引入双重缩放错误,但实测假阳性掩盖了缺陷;后续将修复为直接下发 logical 尺寸。代码重构提升可测性,三组单元测试覆盖多 DPI 场景。最终验证结果经更正后确认需在下篇修正。

ygn12的博客 349

【AUTOSAR-IpduM】-3.1-配置一个发送Tx Dynamic Container PDU(Multiple-PDU)

手把手教您如何配置一个Tx Dynamic Container PDU(Multiple-PDU),动态容器复用帧。并附上测试LOG帮助您进一步加深理解。

「汽车电子助手」的博客 1770

OpenSearch 的索引快照别只留本地:用 repository-s3 存进 RustFS

OpenSearch 跑起来,索引分片默认写在节点自己的本地盘上。单机测试很顺,可一旦索引量上来、节点不止一个,本地盘的故障就成了绕不开的坎:一块盘坏了,上面的分片副本丢了,重建全靠其他副本兜着,集群压力瞬间翻倍。更隐蔽的是快照,很多人把快照也留在本地盘的默认仓库里,等于把备份和原始数据放在了同一块会坏的盘上。OpenSearch 自带 repository-s3 插件,能把索引快照直接写进任意…

分布式存储与RustFS的博客 562

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

Rolldown 把插件改动回传提速 26 倍

Rolldown 下一个版本会把插件改动的回传做细,只把真的改了的字段送回 Rust,大型项目里这一步从 1015 毫秒降到 39 毫秒。什么时候能用上呢,改动已经在 11 月 6 日合并,会跟着下一个版本走,Vite 8 用的就是 Rolldown。更麻烦的是缓存,Rust 替换 chunk 数据之后,之前那份代码缓存就废了,下一个读。这次没有动钩子对象本身,只是把「回传」这件事做细了,先看哪些字段变了,再决定传什么。所以改法很直接,只送变了的字段,没变的 chunk 一个字节都不发。

前端之虎陈随易 193

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Rust如何实现微服务网关的高并发与限流熔断机制

在现代互联网系统中,微服务架构已成为主流,而微服务网关则是整个系统的重要组成部分。当面对高并发、高可用性需求时,很多开发者对如何用 Rust 实现一个稳定可靠的网关存在疑惑,尤其是处理请求的幂等性、限流和熔断机制。本文将以 Rust 的实际案例为基础,结合生产环境中的具体经验,讲解如何设计和实现一个具备限流与熔断能力的微服务网关。

wuchangjian的专栏 76

我写了一个 Windows 开发环境管理平台:Nexus(Tauri 2 + Rust + React)

文件监听事件很密集。如果节流窗口内的变更直接丢弃,最后一次改动就永远加载不到——所以窗口结束时必须补一轮。只对「失败」重试,不对「启动中」重试。启动慢不代表启动失败,盲目重试只会把健康的服务越搞越糟。Nexus 原本是为了解决自己日常开发里「窗口太多、状态不清、日志找不到」的问题,后来慢慢补成了现在这个样子:项目与服务管理、日志、服务健康、文件与代码查看、文件监听、开机启动、Node 版本管理,以及一个内嵌的 AI 助手。如果你也在 Windows 上同时维护多个服务,欢迎试用。

hi星尘的博客 566

Rust 如何构建高可靠支付回调系统?从《Rust 系统编

在现代支付系统中,支付回调处理和对账逻辑是整个系统的稳定性关键。当一笔支付完成时,第三方支付平台会通过异步回调通知业务系统交易结果。然而,在高并发、高吞吐的场景下,如何保证这些回调消息的可靠消费与数据一致性,成为了一个挑战。作为一位中级开发者,你可能已经经历过类似场景:在处理支付回调时,因网络抖动、服务宕机、重复通知等问题导致的数据不一致或对账失败。这时候,“系统编程”不再是理论层面的概念,而是实际落地时的救命稻草。

wuchangjian的专栏 211

Airflow 的中间文件别散落各节点:让 DAG 直接读写 RustFS

数据流水线的中间结果往哪放,是个容易被忽略、出事才知道疼的问题。直接写本地盘,任务被调度到别的节点就找不到文件;挂共享 NFS,又多一层要维护的高可用。Airflow 自带的 Amazon S3 provider 其实就是个标准 S3 客户端,只要把连接的 endpoint_url 从 AWS 指到 RustFS,DAG 里的读写就全落到对象存储上了。这篇顺着官方集成指南,用 Apache Ai…

分布式存储与RustFS的博客 470

GitHub 热榜项目:周榜(2026-11-08)

本期收录19个热门开源项目,总新增⭐102,473,聚焦Python、TypeScript、Rust。Top项目涵盖AI智能体记忆(claude-mem)、Git工作树管理(worktrunk)、游戏开发协作框架(Claude-Code-Game-Studios)及紫微斗数排盘引擎(ziwei-doushu)。T3code实现多智能体控制界面,Anthropic开源技能库助力Agent开发,Hallmark则专注消除AI设计“机器味”。技术趋势凸显AI工程化与跨会话智能体能力的快速演进。

u130130的博客 719

Worktrunk:用 Rust 写的 CLI,给并行跑的 AI agent 各开一份 Git worktree

Worktrunk 是一个 Rust 写的 Git worktree 管理 CLI,补上了原生 worktree 缺失的创建、命名、切换、清理生命周期,目标是让并行跑的多个 AI agent 各占一份互不干扰的工作副本;截至 2026 年 11 月 3 日仓库 10313 stars、81 位贡献者,但本文仅有单一来源,安装方式与 CLI 命令未获证实。

老孙正经胡说 165

Rust重写开源版Photoshop来了,支持PSD编辑,还能让AI Agent直接操作图像

PhotoCraft 是一个基于 Rust 开发的开源专业图像编辑器,旨在以原生高性能架构重构 Photoshop 级工作流。它提供图层、蒙版、调整图层、矢量绘图、文字排版、智能滤镜以及高兼容性的 PSD 支持,同时通过 CLI、JSON 控制接口和 MCP Server 具备面向 AI Agent 的自动化能力。

Tony.Dong的专栏 249

用Rust重写IntelliJ IDEA:169MB替代2GB,0.9秒打开项目的开源IDE

IntelliJ IDEA虽强大却臃肿,启动慢、占内存。开源项目OpenIDEA用Rust重写,保留熟悉快捷键与工作流,体积仅169MB,0.9秒启动。基于LSP支持60+语言,结合Tauri实现轻量跨平台界面。虽暂不替代IntelliJ的Java深度与插件生态,但为多语言开发者提供高效轻量选择,展现Rust+Web技术构建桌面应用的新范式。

weixin_41007138的博客 196

target 目录越来越大,Rust 项目该怎么清理

Rust 项目一多,磁盘空间常常先被target目录吃掉。每个工作区的target里,既有最后要运行的程序,也有依赖编译结果、增量编译数据和构建脚本产生的中间文件。它们都在增长,但生命周期并不一样。整目录删除当然最快,代价是最终产物也会一起消失。只想清掉缓存,又得挨个项目判断哪些目录能删。这个两难,是我写的原因。cargoc 把 Cargo 的中间构建文件放到专用目录,按工作区记录和清理空闲缓存;最终产物仍留在 Cargo 原来的target-dir。它解决的是“哪些中间文件可以清、什么时候清”。

fuwei2020的博客 354

我用 RustyPaste 做 AI Agent 云端存储

RustyPaste 是一个用 Rust 编写的极简文件上传与 Pastebin 服务。可以用来存储和访问 AI Agent 生成的文件

藏云阁技术社区 223

云服务器 + 公网 IP + 容器化部署 (Docker /RustDesk / Rtmp)

我偶然找到的腾讯云 轻量应用服务器,可以免费试用1个月,体验一下 PC远程控制和推拉流。服务器系统选择的 Ubuntu 22.04.5 LTS1、在控制台重置密码2、给服务器 添加放行规则在防火墙页面,点击222111619353、用 SSH 工具(比如 MobaXterm 或 Xshell)通过username@服务器公网IP连上服务器。

2301_79809746的博客 210

从 Electron 到 GPUI,9 个跨平台桌面方案该怎么选

把 Electron、Tauri、Wails、MyGo、Flutter、GPUI、Rune、Native Shell、PyQt 放在一起,按技术栈、渲染方式、成熟度和热度逐个对比,最后给出一张按团队背景选型的速查表。

328
上一篇: MIS3011S Project Specification
下一篇: comp2013-Coursework Part 3 - Maintaining a Legacy Software with Maintainable Quality
todcode
博客等级 码龄7年 359粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值