Contents

armadsen/GlassGem

Consistent Overhead Byte Stuffing (COBS) encoding/decoding package for Swift

Usage

Encoding:

let someData = ...
let cobsEncodedData = someData.encodedUsingCOBS()
// Do something with cobsEncodedData, e.g. sending across a communications link

Decoding:

let someCOBSEncodeData = ... // e.g. from a communications link
let someData = someData.decodedFromCOBS()
// Use someData like normal

The package includes a suite of unit tests.

Installation

To use the GlassGem library in a SwiftPM project, add the following line to the dependencies in your Package.swift file:

.package(url: "https://github.com/armadsen/GlassGem", from: "1.0.0"),

Include "GlassGem" as a dependency for your executable target:

.target(name: "<target>", dependencies: [
    .product(name: "GlassGem", package: "GlassGem"),
]),

Finally, add import GlassGem to your source code.

To Do

GlassGem is already completely usable for the most common scenarios. However, there are a few things I'd like to implement in the future. Pull requests for these are completely welcome. Please include tests for anything you add.

  • [ ] Support for using GlassGem from Objective-C
  • [ ] Support for arbitrary delimiter bytes, not just 0x00
  • [ ] Performance improvements (while still emphasizing readability)
  • [ ] Make documentation work with DocC

Package Metadata

Repository: armadsen/GlassGem

Stars: 4

Forks: 1

Open issues: 5

Default branch: main

Primary language: swift

License: MIT

Topics: cobs, cobs-algorithm, linux, macos, swift

README: README.md