Skip to content
This repository has been archived by the owner on Jun 6, 2023. It is now read-only.

apple/swift-distributed-tracing-baggage-core

Repository files navigation

🧳 Distributed Tracing Baggage Core

📔 NOTE: It is very unlikely that you want to depend on this package itself.

Most libraries and projects should depend on and use the https://github.com/apple/swift-distributed-tracing-baggage package instead, unless avoiding the SwiftLog dependency is necessary.

Baggage is a minimal (zero-dependency) context propagation container, intended to "carry" baggage items for purposes of cross-cutting tools to be built on top of it.

It is modeled after the concepts explained in W3C Baggage and the in the spirit of Tracing Plane 's "Baggage Context" type, although by itself it does not define a specific serialization format.

Please refer to Swift Distributed Tracing Baggage and Swift Distributed Tracing for usage guides of this type.

Dependency

In order to depend on this library you can use the Swift Package Manager, and add the following dependency to your Package.swift:

dependencies: [
  .package(
    name: "swift-baggage-context-core",
    url: "https://github.com/apple/swift-distributed-tracing-baggage-core.git",
    from: "0.1.0"
  )
]

and depend on the module in your target:

targets: [
    .target(
        name: "MyAwesomeApp",
        dependencies: [
            "CoreBaggage",
        ]
    ),
    // ... 
]

Usage

Please refer to Swift Distributed Tracing Baggage for the intended usage, and detailed guidelines.

Alternatively, please refer to the API documentation of the Baggage type.

Contributing

Please make sure to run the ./scripts/soundness.sh script when contributing, it checks formatting and similar things.

You can make ensure it always is run and passes before you push by installing a pre-push hook with git:

echo './scripts/soundness.sh' > .git/hooks/pre-push