|
1 | | -# JBird |
| 1 | +# JBird |
| 2 | + |
| 3 | +[](https://github.com/vsanthanam/JBird/blob/main/LICENSE) |
| 4 | +[](https://github.com/vsanthanam/JBird/releases) |
| 5 | +[](https://github.com/vsanthanam/JBird/actions) |
| 6 | +[](https://swift.org) |
| 7 | +[](https://usejbird.com/docs/documentation/jbird) |
| 8 | + |
| 9 | + |
| 10 | +A high-performance JSON parsing and manipulation library for Swift with a focus on speed, type safety, and a modern Swift API. |
| 11 | + |
| 12 | +## Features |
| 13 | + |
| 14 | +- ⚡️ **High Performance**: Built with a C core for optimized parsing with SIMD acceleration where available |
| 15 | +- 🛡️ **Ergonomic, Type Safe APIs**: Rich Swift API with proper type checking and error handling. Easily convert between JSON and native Swift types. |
| 16 | +- 🧪 **Well Tested**: Comprehensive test suite ensures correct adherence to the JSON RFC |
| 17 | +- 📝 **Fully Documented**: Thorough documentation with detailed API references and code samples, available on GitHub Pages. |
| 18 | + |
| 19 | +## Installation |
| 20 | + |
| 21 | +JBird is currently distributed exclusively through the [Swift Package Manager](https://www.swift.org/package-manager/). |
| 22 | + |
| 23 | +To add JBird as a dependency to an existing Swift package, add the following line of code to the `dependencies` parameter of your `Package.swift` file: |
| 24 | + |
| 25 | +Add JBird to your `Package.swift` file: |
| 26 | + |
| 27 | +```swift |
| 28 | +dependencies: [ |
| 29 | + .package(url: "https://github.com/vsanthanam/JBird.git", from: "1.0.0") |
| 30 | +] |
| 31 | +``` |
| 32 | + |
| 33 | +Then add the dependency to your target: |
| 34 | + |
| 35 | +```swift |
| 36 | +.target( |
| 37 | + name: "YourTarget", |
| 38 | + dependencies: ["JBird"] |
| 39 | +) |
| 40 | +``` |
| 41 | + |
| 42 | +To add JBird as a dependency to an Xcode Project: |
| 43 | + |
| 44 | +- Choose `File` → `Add Packages...` |
| 45 | +- Enter package URL `https://github.com/vsanthanam/JBird.git` and select your release and of choice. |
| 46 | + |
| 47 | +Other distribution mechanisms like CocoaPods or Carthage may be added in the future. |
| 48 | + |
| 49 | +## Performance |
| 50 | + |
| 51 | +JBird is designed for high performance, with benchmarks showing it to be one of the fastest JSON parsers available for Swift. The core parsing engine is written in C with SIMD acceleration where available, making it significantly faster than pure Swift implementations. |
| 52 | + |
| 53 | +JBird demonstrates exceptional performance compared to other popular JSON parsing libraries: |
| 54 | + |
| 55 | +- **Speed**: JBird parses JSON 2-5x faster than SwiftyJSON and about 25% faster than Foundation |
| 56 | +- **Memory Efficiency**: JBird uses significantly less memory than other parsers (up to a 95% reduction) |
| 57 | +- **Resource Usage**: JBird requires dramatically fewer CPU instructions and memory allocations for equivelent payloads |
| 58 | +- **Consistent Performance**: JBird maintains its performance advantage across different JSON file sizes and formats |
| 59 | + |
| 60 | +These benchmarks were run on a variety of JSON files ranging from 64KB to 5MB, in both minified and pretty-printed formats. You can explore the comparisons with common Swift JSON libraries (Foundation, SwiftyJSON, etc.) in the `/Benchmarks` directory. |
| 61 | + |
| 62 | +## Usage & Documentation |
| 63 | + |
| 64 | +JBird's documentation is built with [DocC](https://developer.apple.com/documentation/docc) and included in the repository as a DocC archive. The latest version is hosted on [GitHub Pages](https://pages.github.com) and is available [here](https://usejbird.com/docs/documentation/jbird). |
| 65 | + |
| 66 | +Additional installation instructions are available on the [Swift Package Index](https://swiftpackageindex.com/vsanthanam/JBird) |
| 67 | + |
| 68 | +[](https://swiftpackageindex.com/vsanthanam/JBird) |
| 69 | +[](https://swiftpackageindex.com/vsanthanam/JBird) |
| 70 | + |
| 71 | +Explore [the documentation](https://usejbird.com/docs/documentation/jbird) for more details. |
| 72 | + |
| 73 | +## License |
| 74 | + |
| 75 | +**JBird** is available under the [MIT license](https://en.wikipedia.org/wiki/MIT_License). See the [LICENSE](https://github.com/vsanthanam/JBird/blob/main/LICENSE) file for more information. |
0 commit comments