Serde를 사용하여 Ndarray 필드를 포함하는 구조체 직렬화

Nilesh Katuwal 2023년1월30일
  1. Rust에서 serde 배열 생성
  2. Rust의 Serde 예제
Serde를 사용하여 Ndarray 필드를 포함하는 구조체 직렬화

이 기사에서는 ndarray 필드를 포함하는 구조체를 직렬화하기 위해 serde를 사용하는 방법을 배웁니다.

Rust에서 serde 배열 생성

Serde를 사용하여 const, 일반적이거나 임의적으로 큰 어레이를 직렬화 및 역직렬화합니다. Serde는 직렬화 라이브러리가 Rust 데이터 구조를 일반적으로 직렬화할 수 있도록 하여 런타임 유형 정보의 필요성을 제거하는 강력한 프레임워크입니다.

또한 많은 상황에서 직렬 변환기와 직렬 변환기 사이에 일반적으로 사용되는 핸드셰이크 프로토콜을 완전히 최적화할 수 있으므로 Serde가 특정 유형용으로 직접 설계된 직렬 변환기와 거의 동일한 속도로 작동할 수 있습니다.

Serde는 다양한 유형을 지원합니다. 그러나 const 제네릭을 사용하는 어레이는 지원하지 않습니다. 이 라이브러리는 Serde의 with 속성과 함께 사용할 때 기능에 대한 지원을 추가하는 모듈을 제공합니다.

Rust의 Serde 예제

다음은 무대 뒤에서 Serde를 사용하는 serde JSON 라이브러리를 사용하여 JSON을 생성하고 구문 분석하는 간단한 데모입니다. 작업을 시작하기 위해 Cargo.toml 파일부터 시작하겠습니다.

[package]
name = "example_serde"
version = "0.1.0"
authors = ["example@abc.com>"]

[dependencies]
serde_json = "0.8"
[dependencies]
ndarray = { version = "0.13.1", features = ["serde"] }

이전 예에서 JSON 값의 메모리 내 표현은 serde json::Value였습니다. 그러나 Serde는 표준 Rust 유형과도 직렬화할 수 있습니다.

Serde는 Stable 및 Nightly Rust와 호환되는 매우 효과적인 코드 생성 라이브러리를 보유하고 있습니다. 이러한 라이브러리는 특정 유형에 대한 직렬화 및 역직렬화를 수동으로 롤아웃하는 것과 관련된 어려움의 상당 부분을 제거합니다.