oxc_estree

Crates.iooxc_estree
lib.rsoxc_estree
version0.83.0
created_at2024-10-19 15:12:15.804102+00
updated_at2025-08-29 06:51:00.212972+00
descriptionA collection of JavaScript tools written in Rust.
homepagehttps://oxc.rs
repositoryhttps://github.com/oxc-project/oxc
max_upload_size
id1415445
size81,821
Boshen (Boshen)

documentation

README

Oxc ESTree

ESTree compatibility layer for serialization and interoperability.

Overview

This crate provides compatibility with the ESTree AST specification, primarily for serialization purposes. It enables oxc AST nodes to be serialized to and from JSON in ESTree format, facilitating interoperability with other JavaScript tools.

Key Features

  • ESTree compatibility: Convert oxc AST to/from standard ESTree format
  • Serialization support: JSON serialization/deserialization via serde
  • Tool interoperability: Enable integration with ESTree-based tools
  • Optional feature: Only enabled when serialize feature is active

Usage

Architecture

ESTree Specification

ESTree is a community standard for representing JavaScript AST nodes. This crate ensures oxc's AST can be represented in this standard format while maintaining compatibility with the broader JavaScript tooling ecosystem.

Design Principles

  • Compatibility: Full compatibility with ESTree specification
  • Optional overhead: Only included when serialization is needed
  • Type safety: Maintains Rust's type safety during conversion
  • Performance: Efficient serialization with minimal overhead

Use Cases

  • IDE integration: Language servers communicating via JSON
  • Tool interoperability: Working with Babel, ESLint, and other ESTree tools
  • Data exchange: Transferring AST data between different systems
  • Debugging: Human-readable AST representation

When the serialize feature is disabled, this crate provides only a placeholder trait to support derive macros without overhead.

Commit count: 11571

cargo fmt