Skip to content

Add no-std support to o1-utils crate #1988

@dannywillems

Description

@dannywillems

Summary

Add no_std support to the o1-utils crate in proof-systems to enable no-std kimchi verifier.

Context

We are working on making the kimchi verifier no_std compatible for embedded and WASM use cases. This requires all dependency crates to support no_std.

Dependency tier: Utility layer (used by poly-commitment and kimchi)

Known blockers

  • rayon usage for parallel processing - needs feature gate
  • serde_json - needs feature gate
  • lazy_cache.rs uses std::sync::Once
  • serialization.rs uses std::io::BufReader

Requirements

  • Add #![no_std] attribute with conditional std feature
  • Add std and alloc features to Cargo.toml
  • Feature-gate rayon behind std or parallel feature
  • Feature-gate file I/O operations behind std feature
  • Replace std::sync::Once with once_cell equivalent
  • Replace any std:: imports with core:: or alloc:: equivalents

Tracking

Part of the no-std kimchi initiative. See: o1-labs/proof-systems#3413

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

In Progress

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions