Wiznet makers

josephsr

Published December 24, 2025 ©

83 UCC

11 WCC

13 VAR

0 Contests

0 Followers

0 Following

Original Link

[under working]Rust Embedded Networking in Practice: Cotton, Embassy, and Where WIZnet Fits

Rust remains a minority in embedded systems, but its HAL and async ecosystem is growing. This article explains Cotton’s role and WIZnet’s low-cost path to impac

COMPONENTS
PROJECT DESCRIPTION

Overview

In embedded systems, C still dominates.
MicroPython and CircuitPython continue to grow in education and prototyping.
Rust, by contrast, remains a small slice of the overall market.

Yet something important is happening beneath the surface.

Across multiple platforms and projects, Rust’s embedded ecosystem is not just “alive”, but structuring itself:
HALs are stabilizing, async execution is converging around Embassy, and networking stacks are becoming reusable across targets.

This article does not argue that Rust will replace C.
Instead, it examines where Rust is growing, what kind of architecture that growth favors, and how WIZnet can position W5500 to benefit from this trend with minimal effort.


1. Rust in Embedded: Small Share, Clear Signals

Public embedded surveys still place C and C++ at the top, with Python variants steadily expanding their footprint. Rust rarely appears as a top-tier language by percentage.

However, looking only at market share hides important signals:

RP2040 HAL crates have accumulated steady version releases over multiple years.

ESP32 Rust HALs show high download counts and growing dependency graphs.

Embassy’s async executor and network stack have existed since 2020 and are still actively updated today.

These are not indicators of a fad.
They are indicators of long-term consolidation.

Rust in embedded today resembles an early infrastructure phase: small in numbers, but increasingly opinionated in structure.


2. Three Platforms Where Rust Is Converging

Rust’s embedded momentum is not evenly distributed. It is concentrated around three families of platforms.

STM32

Strong industrial presence

Mature Rust HALs

Clear fit for deterministic, wired networking

STM32 represents “production-oriented Rust”.

ESP32

Built-in Wi-Fi

Expanding Rust support through esp-hal

Increasing demand for hybrid wired/wireless designs

ESP32 represents “connectivity-first Rust”.

RP2040 (Raspberry Pi Pico)

Education and maker adoption

Simple hardware model

Excellent Rust onboarding experience

RP2040 represents “future developers learning Rust by default”.

Across all three, the same pattern appears:
Rust users expect portable HALs, async execution, and composable networking components.


3. Cotton: Not a Product, but a Reference World

This is where the Cotton project becomes useful.

Cotton is not a WIZnet product, nor is it intended to be a universal stack.
It is better understood as a reference architecture showing how far Rust embedded networking can be decomposed.

Within Cotton:

cotton-netif treats network interface changes as asynchronous events.

cotton-ssdp separates discovery logic from transport.

cotton-unique isolates device identity generation.

cotton-usb-host demonstrates a no-std, no-alloc, async USB host stack.

cotton-w5500 uses W5500 in MACRAW mode as a smoltcp network device.

The key idea is not any single crate, but explicit separation of concerns.

Cotton shows that, in Rust, networking is no longer a monolithic stack but a set of interchangeable roles.

This makes Cotton valuable not as “the solution”, but as a map of what is possible.


4. Embassy and the Reality Track

Most real products will not adopt Cotton wholesale.

What they will adopt is the execution model that has emerged as the de facto standard: Embassy.

Embassy provides:

A stable async executor

Platform-specific HAL integrations

An async network stack layered on smoltcp

Importantly, Embassy already includes support for WIZnet devices through embassy-net-wiznet.

This places W5500 directly inside the main growth axis of Rust embedded networking.

From a strategic perspective, this matters more than any single feature.


5. Two Tracks, One Strategy

From a WIZnet point of view, the ecosystem naturally splits into two tracks:

The Reality Track

Hardware TCP offload

Socket-oriented programming

STM32 / ESP32 / RP2040 production designs

Embassy-based async execution

This is where most customers live today.

The Reference Track

MACRAW + smoltcp

Deterministic, inspectable networking

Security-oriented or research-driven designs

Cotton as a conceptual guide

This is where future architectures are explored.

Crucially, these tracks do not compete.
They reinforce each other.


6. Minimal Investment, Maximum Impact

The temptation is to over-engineer: rewrite full stacks, port entire C libraries, or create a “perfect” Rust networking SDK.

None of that is necessary.

A minimal, high-impact strategy looks like this:

Anchor on Embassy

Treat embassy-net-wiznet as the primary integration point.

Improve examples, documentation, and reliability testing.

Provide Golden Path Examples

One clear example each for STM32, ESP32, and RP2040.

Same structure, different HALs.

“Copy, build, run” experience.

Position Cotton as a Reference

Not required, not official, not enforced.

A demonstration of advanced separation and future direction.

This approach avoids fragmentation while quietly establishing WIZnet as a natural default in Rust embedded networking.


Conclusion

Rust will not replace C in embedded systems overnight.
But it is steadily shaping how future embedded systems are structured.

Cotton shows the architectural horizon.
Embassy defines the execution reality.
STM32, ESP32, and RP2040 anchor the present and future developer base.

By focusing on integration rather than reinvention, WIZnet can secure a durable position in this ecosystem with surprisingly little effort.

The goal is not to own the standard,
but to stand on the path where the standard is forming.


Overview

임베디드 세계에서 C는 여전히 절대적이다.
MicroPython과 CircuitPython은 교육과 프로토타이핑 영역을 넓히고 있다.
Rust는 아직 전체 시장에서 작은 비중을 차지한다.

그러나 중요한 변화가 있다.

Rust 임베디드 생태계는 단순히 “존재”하는 단계를 넘어,
구조를 갖추기 시작했다.

HAL은 안정화되고, async 실행 모델은 Embassy로 수렴하며,
네트워킹은 재사용 가능한 구성 요소로 분해되고 있다.

이 글의 목적은 Rust가 C를 대체할 것이라고 주장하는 데 있지 않다.
대신 어디에서 Rust가 성장하고 있는지,
그 성장이 어떤 아키텍처를 요구하는지,
그리고 WIZnet이 이 흐름 속에서 어떤 위치를 선택해야 하는지를 정리한다.


1. 작은 비중, 그러나 분명한 성장 신호

공개된 임베디드 설문에서 Rust는 여전히 상위 언어에 포함되지 않는 경우가 많다.
하지만 점유율만으로는 중요한 신호를 놓치게 된다.

RP2040용 Rust HAL은 수년간 꾸준히 릴리즈를 이어왔다.

ESP32 Rust HAL은 높은 다운로드 수와 의존성 증가를 보인다.

Embassy executor는 2020년에 시작해 지금도 활발히 유지되고 있다.

이는 일시적 유행이 아니라, 장기 인프라가 형성되고 있다는 신호다.


2. Rust가 모이고 있는 세 가지 플랫폼

Rust 임베디드의 성장은 특정 플랫폼에 집중되어 있다.

STM32

산업·상용 중심

성숙한 Rust HAL

유선 네트워크와의 높은 적합성

실전형 Rust

ESP32

Wi-Fi 내장

Rust 지원 빠른 확장

유선/무선 혼합 설계 수요

연결 중심 Rust

RP2040

교육·메이커 중심

Rust 진입 장벽 낮음

차세대 개발자 유입 통로

미래 인력 기반

이 세 축 모두에서 공통적으로 요구되는 것은
이식 가능한 HAL, async 실행 모델, 조립 가능한 네트워크 구성이다.


3. Cotton의 의미: 정답이 아닌 지도

Cotton은 제품도, 표준도 아니다.
Cotton은 Rust 임베디드 네트워킹이 어디까지 분해될 수 있는지 보여주는 참조 세계다.

인터페이스 변화는 이벤트로 다룬다 (cotton-netif)

디스커버리는 전송과 분리된다 (cotton-ssdp)

디바이스 정체성은 별도로 관리된다 (cotton-unique)

USB Host조차 async/no-std/no-alloc로 분리된다

W5500은 MACRAW 모드로 smoltcp에 연결된다

Cotton의 핵심은 기능이 아니라 경계 설계다.

“이렇게 써야 한다”가 아니라
“이렇게까지 분리할 수 있다”를 보여준다.


4. 현실의 선택: Embassy

대부분의 실제 제품은 Cotton을 그대로 채택하지 않는다.
대신 Embassy를 채택한다.

Embassy는:

async 실행 모델

플랫폼별 HAL 통합

smoltcp 기반 네트워크 스택

을 제공한다.

중요한 점은,
WIZnet 장치가 이미 Embassy 네트워크 축에 포함되어 있다는 것이다.
(embassy-net-wiznet)

이는 W5500이 Rust 임베디드 네트워킹의 중심 경로에 이미 올라와 있음을 의미한다.


5. 두 개의 트랙, 하나의 전략

WIZnet 관점에서 생태계는 자연스럽게 두 트랙으로 나뉜다.

현실 트랙

HW TCP 오프로딩

소켓 기반 프로그래밍

STM32/ESP32/RP2040 상용 설계

Embassy 기반 async 실행

참조 트랙

MACRAW + smoltcp

결정 가능하고 분석 가능한 네트워크

보안·연구·특수 목적

Cotton이 상징하는 방향성

이 둘은 경쟁 관계가 아니다.
서로를 강화한다.


6. 최소 투자로 최대 영향력을 얻는 방법

대규모 포팅이나 재개발은 필요 없다.

가장 효율적인 전략은 다음과 같다.

Embassy 중심 전략

embassy-net-wiznet을 핵심 통합 지점으로 유지

예제, 문서, 안정성 강화

3플랫폼 골든 패스 제공

STM32 / ESP32 / RP2040 공통 구조

HAL만 다른 동일한 예제

Cotton은 레퍼런스로 유지

강요하지 않고, 방향성만 제시

이 방식은 생태계를 분열시키지 않으면서
WIZnet을 자연스러운 선택지로 만든다.


맺음말

Rust는 당장 C를 대체하지 않는다.
그러나 미래의 임베디드 시스템이 어떻게 구조화될지는 이미 바뀌고 있다.

Cotton은 그 미래의 윤곽을 보여주고,
Embassy는 현재의 실행 기반을 제공하며,
STM32·ESP32·RP2040은 개발자 흐름을 만들어낸다.

WIZnet이 해야 할 일은 표준을 소유하는 것이 아니라,
표준으로 가는 길 위에 먼저 서는 것이다.

그리고 그 길은 이미 열려 있다.

Documents
  • rust cotton

Comments Write