SiddiqSoft.sip2json
3.1.4
dotnet add package SiddiqSoft.sip2json --version 3.1.4
NuGet\Install-Package SiddiqSoft.sip2json -Version 3.1.4
<PackageReference Include="SiddiqSoft.sip2json" Version="3.1.4" />
<PackageVersion Include="SiddiqSoft.sip2json" Version="3.1.4" />
<PackageReference Include="SiddiqSoft.sip2json" />
paket add SiddiqSoft.sip2json --version 3.1.4
#r "nuget: SiddiqSoft.sip2json, 3.1.4"
#:package SiddiqSoft.sip2json@3.1.4
#addin nuget:?package=SiddiqSoft.sip2json&version=3.1.4
#tool nuget:?package=SiddiqSoft.sip2json&version=3.1.4
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
- Performance & Benchmarks
- Asynchronous Stream Parsing
- JSON Schema Metaphor
- API Reference
Quick Example
=== "Stream Parsing"
```cpp
#include <iostream>
#include "siddiqsoft/sip2json.hpp"
using namespace siddiqsoft;
void onNetworkDataReceived(std::string& tcpReadBuffer)
{
// Asynchronously parse multiple SIP frames from buffer (erasing consumed bytes)
sip2json::parseAsync(
tcpReadBuffer,
[](sipmessage&& msg) {
std::cout << "Parsed " << msg.getMethod() << " Call-ID: " << msg.getCallID() << "\n";
nlohmann::json doc = msg; // First-class JSON metaphor
},
[](const sip2json_exception& ex, auto& start, const auto& end) {
std::cerr << "Parser warning: " << ex.what() << "\n";
}
);
}
```
=== "Push to RabbitMQ"
```cpp
#include "siddiqsoft/sip2json.hpp"
#include <SimpleAmqpClient/SimpleAmqpClient.h>
using namespace siddiqsoft;
// Stream incoming SIP frames directly into a RabbitMQ exchange as JSON
auto channel = AmqpClient::Channel::Create("localhost");
sip2json::parseAsync(tcpReadBuffer, [&](sipmessage&& msg) {
nlohmann::json doc = msg;
auto body = AmqpClient::BasicMessage::Create(doc.dump());
channel->BasicPublish("sip_events", std::string(msg.getMethod()), body);
});
```
=== "Log to DuckDB"
```cpp
#include "siddiqsoft/sip2json.hpp"
#include <duckdb.hpp>
using namespace siddiqsoft;
// Stream incoming SIP traffic directly into DuckDB for columnar analytics
duckdb::DuckDB db("sip_analytics.db");
duckdb::Connection con(db);
con.Query("CREATE TABLE IF NOT EXISTS sip_traffic (method VARCHAR, call_id VARCHAR, payload JSON);");
duckdb::Appender appender(con, "sip_traffic");
sip2json::parseAsync(tcpReadBuffer, [&](sipmessage&& msg) {
nlohmann::json doc = msg;
appender.AppendRow(std::string(msg.getMethod()), std::string(msg.getCallID()), doc.dump());
});
appender.Flush();
```
!!! note "NOTE"
Use threadpool or async versions of specific SDK to maximize performance.
Standards Compliance
sip2json is verified against official IETF specifications across dedicated automated test suites:
- RFC 3261 (Core SIP):
tests/compliance/src/rfc3261_compliance_tests.cpp - RFC 4475 (Torture Test Suite — 50/50):
tests/compliance/src/rfc4475_torture_tests.cpp - RFC 3262, RFC 3515, RFC 3903, RFC 6665 (SIP Extensions):
tests/compliance/src/sip_certification_suite.cpp - RFC 8866 / RFC 4566, RFC 3264, RFC 8829 / RFC 8839 (SDP & WebRTC):
tests/compliance/src/sdp_compliance_tests.cpp
For full coverage matrices, section mappings, and torture test details, see the Standards Compliance Guide on our documentation site.
!!! note "Performance" High-throughput stream parsing with low microsecond latency — see our pipeline-compiled Performance & Benchmarks Guide.
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.1.4 | 36 | 9/6/2026 |
| 3.1.3 | 49 | 9/6/2026 |
| 3.1.2 | 44 | 9/5/2026 |
| 3.1.1 | 48 | 9/5/2026 |
| 3.1.0 | 40 | 9/4/2026 |
| 3.0.1 | 42 | 9/4/2026 |
| 2.5.8 | 107 | 8/21/2026 |
| 2.5.7 | 100 | 8/21/2026 |
| 2.5.6 | 94 | 8/21/2026 |
| 2.5.5 | 101 | 8/19/2026 |
| 2.5.4 | 102 | 8/19/2026 |
| 2.5.3 | 102 | 8/19/2026 |
| 2.5.2 | 102 | 8/19/2026 |
| 2.5.1 | 106 | 8/19/2026 |
| 2.4.2 | 240 | 6/19/2026 |
| 2.4.1 | 228 | 5/23/2026 |
| 2.4.0 | 255 | 5/5/2026 |
| 2.3.3 | 254 | 5/4/2026 |
| 2.3.2 | 259 | 5/4/2026 |
| 2.3.1 | 254 | 5/4/2026 |
## v3.1.0 Release - Clean JavaScript-like Modern C++20 API & Streamlined Architecture
### Key Highlights
- **Zero-Regex Architecture**: Pure zero-copy C++20 std::string_view tokenization and FNV-1 header matching.
- **Clean Ergonomics**: Modern C++20 API design providing intuitive JSON integration via nlohmann.json.
- **Pipeline-Derived Benchmarks**: Fully dynamic, verifiable benchmark collection directly from CI runners across platforms.
- **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/SiddiqSoft/sip2json/releases