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 linkDecoding:
let someCOBSEncodeData = ... // e.g. from a communications link
let someData = someData.decodedFromCOBS()
// Use someData like normalThe 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