SiddiqSoft.sip2json
3.0.1
See the version list below for details.
dotnet add package SiddiqSoft.sip2json --version 3.0.1
NuGet\Install-Package SiddiqSoft.sip2json -Version 3.0.1
<PackageReference Include="SiddiqSoft.sip2json" Version="3.0.1" />
<PackageVersion Include="SiddiqSoft.sip2json" Version="3.0.1" />
<PackageReference Include="SiddiqSoft.sip2json" />
paket add SiddiqSoft.sip2json --version 3.0.1
#r "nuget: SiddiqSoft.sip2json, 3.0.1"
#:package SiddiqSoft.sip2json@3.0.1
#addin nuget:?package=SiddiqSoft.sip2json&version=3.0.1
#tool nuget:?package=SiddiqSoft.sip2json&version=3.0.1
sip2json: A Focused SIP Parser for Modern C++
sip2json is a header-only Modern C++20 SIP protocol parser and serializer library designed with nlohmann::json as a first-class API metaphor for seamlessly converting SIP protocol messages to/from JSON for NoSQL databases and distributed event processing.
Documentation
- Quick Start & Integration
- Asynchronous Stream Parsing
- Performance & Benchmarks
- JSON Schema Metaphor
- API Reference
Quick Example
#include <iostream>
#include "siddiqsoft/sip2json.hpp"
using namespace siddiqsoft;
void onNetworkDataReceived(std::string& tcpReadBuffer)
{
// Asynchronously parse multiple SIP frames from buffer
sip2json::parseAsync(
tcpReadBuffer,
[](sipmessage&& msg) {
if (!msg.empty()) {
std::cout << "Parsed " << msg.getMethod() << " Call-ID: " << msg.getCallID() << "\n";
}
},
[](const sip2json_exception& ex, std::string::iterator& start, const std::string::iterator& end) {
std::cerr << "Parser warning: " << ex.what() << "\n";
}
);
// Note: sip2json::parseAsync automatically erases decoded messages from tcpReadBuffer.
}
Standards Compliance & Certification Test Suite
sip2json includes an automated test suite featuring dedicated RFC compliance and torture test suites located in tests/compliance/:
- RFC 3261 Core Compliance (
tests/compliance/rfc3261_compliance_tests.cpp): Validates 14 standard RFC request methods, status line classes (1xx-6xx), case-insensitive header canonicalization (vIa,fRoM,cALL-id), 10 compact header abbreviations (v,f,t,i,c,l,m,s,k,e), and body framing. - RFC 4475 SIP Torture Tests (
tests/compliance/rfc4475_torture_tests.cpp): All 50 official bit-exact IETF torture test cases (.datfiles) including multiline header folding with LWSP (\r\n\t/\r\n), non-ASCII & empty reason phrases, URI escaping, unknown extension header preservation, multipleViaheader array formatting, negativeContent-Lengthrejection, and truncated stream buffer handling. - SIP Standard Certification Suite (
tests/compliance/sip_certification_suite.cpp): Full end-to-end certification for RFC 3261, RFC 3262 (PRACK), RFC 6665 (Event/Subscription-State), RFC 3515 (REFER), and RFC 3903 (PUBLISH). - SDP RFC 4566 / 8866 / 3264 / WebRTC (RFC 8829 / 8839) Compliance Suite (
tests/compliance/sdp_compliance_tests.cpp): Complete Session Description Protocol parsing, Offer/Answer direction flags (sendrecv,sendonly,recvonly,inactive), WebRTC BUNDLE media grouping (a=group:BUNDLE), ICE candidates (a=candidate), ICE credentials (a=ice-ufrag,a=ice-pwd), DTLS fingerprints (a=fingerprint), multiple SDP session blocks (v=0demarcation), and UNIX\nline endings.
License
Licensed under the BSD 3-Clause License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| native | native is compatible. |
-
- nlohmann.json (>= 3.12.0)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories (1)
Showing the top 1 popular GitHub repositories that depend on SiddiqSoft.sip2json:
| Repository | Stars |
|---|---|
|
ubisoft/Sharpmake
Sharpmake is an open-source C#-based solution for generating project definition files, such as Visual Studio projects and solutions, GNU makefiles, Xcode projects, etc.
|
| Version | Downloads | Last Updated |
|---|---|---|
| 3.2.0 | 103 | 9/14/2026 |
| 3.1.5 | 110 | 9/9/2026 |
| 3.1.4 | 130 | 9/6/2026 |
| 3.1.3 | 125 | 9/6/2026 |
| 3.1.2 | 118 | 9/5/2026 |
| 3.1.1 | 121 | 9/5/2026 |
| 3.1.0 | 115 | 9/4/2026 |
| 3.0.1 | 113 | 9/4/2026 |
| 2.5.8 | 145 | 8/21/2026 |
| 2.5.7 | 136 | 8/21/2026 |
| 2.5.6 | 134 | 8/21/2026 |
| 2.5.5 | 139 | 8/19/2026 |
| 2.5.4 | 138 | 8/19/2026 |
| 2.5.3 | 137 | 8/19/2026 |
| 2.5.2 | 139 | 8/19/2026 |
| 2.5.1 | 145 | 8/19/2026 |
| 2.4.2 | 269 | 6/19/2026 |
| 2.4.1 | 252 | 5/23/2026 |
| 2.4.0 | 278 | 5/5/2026 |
| 2.3.3 | 277 | 5/4/2026 |
## v3.0 Release - Zero-Regex Architecture & C++20 std::string_view Optimizations
### Key Highlights
- **Zero-Regex Architecture**: Eliminated CTRE and all runtime regex overhead; pure zero-copy C++20 std::string_view tokenization.
- **Significant Performance Gains**: Up to +97.5% throughput improvement and 49.3% latency reduction compared to v2.x.
- **Single Dependency**: Only nlohmann.json is required.
- **Native NuGet Support**: Restored native NuGet package support for MSVC / Visual Studio C++20 projects.
For detailed release notes, visit: https://github.com/siddiqsoftware/sip2json/releases