Expand description

Common functionality for symbolic.

This crate exposes a set of key types:

  • ByteView: Gives access to binary data in-memory or on the file system.
  • SelfCell: Allows to create self-referential types.
  • Name: A symbol name that can be demangled with the demangle feature.
  • InstructionInfo: A utility type for instruction pointer heuristics.
  • Functions and utilities to deal with paths from different platforms.


  • serde (optional): Implements serde::Deserialize and serde::Serialize for all data types. In the symbolic crate, this feature is exposed via common-serde.

This module is part of the symbolic crate.


Wrapper around DebugId for Breakpad formatting.

A smart pointer for byte data.

Unique platform-dependent identifier of code files.

Unique identifier for debug information files and their debug information.

Helper to work with instruction addresses.

The name of a potentially mangled symbol.

Indicates an error parsing a CodeId.

Indicates an error parsing a DebugId.

A container carrying a derived object alongside its owner.

An error returned for an invalid Arch.

An error returned for an invalid Language.

A Universally Unique Identifier (UUID).


An enumeration of CPU architectures and variants.

Represents a family of CPUs.

A programming language declared in debugging information.

A Names mangling state.


Safe downcasting of dependent lifetime bounds on structs.

Extensions to Path for handling dSYM directories.

An unsafe marker trait for types that deref to a stable address, even when moved. For example, this is implemented by Box, Vec, Rc, Arc and String, among others. Even when a Box is moved, the underlying storage remains at a fixed location.


Simplifies paths by stripping redundant components.

Joins paths of various platforms.

Trims a path to a given length.

Splits off the last component of a path.

Splits off the last component of a path given as bytes.