GlassGem

1.0.0

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

What's New

v1.0.0

2023-09-04T19:39:39Z

This is the first version of GlassGem.

GlassGem

GlassGem is a Swift package that implements the Consistent Overhead Byte Stuffing (COBS) algorithm for encoding arbitrary data with single byte packet delimiters.

It consists of an extension on Data with exactly two methods: encodedUsingCOBS() and decodedFromCOBS().

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)

Description

  • Swift Tools 5.8.0
View More Packages from this Author

Dependencies

  • None
Last updated: Sun Mar 10 2024 17:10:09 GMT-0900 (Hawaii-Aleutian Daylight Time)