A Swift framework with classes for reading and writing bits and bytes.
BitByteData can be integrated into your project using Swift Package Manager, CocoaPods or Carthage.
To install using SPM, add BitByteData to you package dependencies and specify it as a dependency for your target, e.g.:
import PackageDescription
let package = Package(
name: "PackageName",
dependencies: [
.package(url: "https://github.com/tsolomko/BitByteData.git",
from: "1.2.0")
],
targets: [
.target(
name: "TargetName",
dependencies: ["BitByteData"]
)
]
)
More details you can find in Swift Package Manager's Documentation.
Add pod 'BitByteData', '~> 1.2'
and use_frameworks!
to your Podfile.
To complete installation, run pod install
.
Add to your Cartfile github "tsolomko/BitByteData" ~> 1.2
.
Then run carthage update
.
Finally, drag and drop BitByteData.framework
from Carthage/Build
folder
into the "Embedded Binaries" section on your targets' "General" tab in Xcode.
Use ByteReader
class to read bytes.
For reading bits there are two classes: LsbBitReader
and MsbBitReader
, which implement BitReader
protocol
for two bit-numbering schemes ("LSB 0" and "MSB 0" correspondingly).
Both LsbBitReader
and MsbBitReader
classes inherit from ByteReader
so you can also use them to read bytes
(but they must be aligned, see documentation for more details).
Writing bits is implemented in two classes LsbBitWriter
and MsbBitWriter
(again, for two bit-numbering schemes).
They both conform to BitWriter
protocol.
Note: All readers and writers aren't structs, but classes intentionally.
This is done to make it easier to pass them as arguments to functions and to eliminate unnecessary copying and inout
s.
Every function or type of BitByteData's public API is documented. This documentation can be found at its own website.
Whether you find a bug, have a suggestion, idea or something else, please create an issue on GitHub.
If you'd like to contribute code, please create a pull request on GitHub.
Note: If you are considering working on BitByteData, please note that Xcode project (BitByteData.xcodeproj)
was created manually and you shouldn't use swift package generate-xcodeproj
command.