Metadata-Version: 2.4
Name: wireforge
Version: 0.1.0
Summary: Schema-driven wire-format toolkit: C++17 code generation, validation, server and MCP.
Author: Oguzhan KAYNAK
License-Expression: BUSL-1.1 AND MIT
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
License-File: runtime/LICENSE
Requires-Dist: ruamel.yaml>=0.18
Requires-Dist: jsonschema>=4.21
Requires-Dist: referencing>=0.30
Requires-Dist: typing_extensions>=4.4
Provides-Extra: server
Requires-Dist: fastapi>=0.110; extra == "server"
Requires-Dist: uvicorn>=0.29; extra == "server"
Provides-Extra: oidc
Requires-Dist: joserfc>=1.0; extra == "oidc"
Provides-Extra: mcp
Requires-Dist: mcp>=2.3; extra == "mcp"
Provides-Extra: import
Requires-Dist: openpyxl>=3.1; extra == "import"
Provides-Extra: dev
Requires-Dist: pytest>=8; extra == "dev"
Requires-Dist: ruff<0.18,>=0.17; extra == "dev"
Requires-Dist: mypy<3,>=2.4; extra == "dev"
Requires-Dist: types-jsonschema; extra == "dev"
Requires-Dist: gcovr>=7; extra == "dev"
Requires-Dist: clang-tidy==18.1.8; extra == "dev"
Requires-Dist: fastapi>=0.110; extra == "dev"
Requires-Dist: uvicorn>=0.29; extra == "dev"
Requires-Dist: httpx2>=2.13; extra == "dev"
Requires-Dist: mcp>=2.3; extra == "dev"
Requires-Dist: openpyxl>=3.1; extra == "dev"
Requires-Dist: joserfc>=1.0; extra == "dev"
Requires-Dist: types-openpyxl; extra == "dev"
Requires-Dist: pymodbus==3.16.1; extra == "dev"
Dynamic: license-file

# WireForge

Schema-driven wire-format toolkit for C++17: describe binary messages in YAML (by hand, in the web UI, through the CLI
or an AI agent) and generate allocation-free C++ serializers, validators, framers and dispatchers together with a
GoogleTest project that proves them against a reference codec and gates the generated code at 100 % line, branch and
function coverage.

- The wire format is imposed by the remote party: generated code never adds bytes.
- Runtime and generated code use only pre-allocated storage: no heap, no exceptions, no RTTI required.
- One service layer behind the `wireforge` CLI, the Python API, the REST server with its web UI and the MCP server.
- A generated Wireshark Lua dissector shows every interface's frames, with the same checks as the decoder.
- Zero warnings from every compiler and analyzer; tested on 32/64 bit, little and big endian, x86 and ARM, on Linux,
  Windows, macOS, Android and FreeRTOS; differential testing and fuzzing.

The way in is short: `wireforge init` gives a working first project, you change it to your protocol, generate the C++
code, run the tests and read the results. Nothing about requirements or standards is needed for that.

## For teams with a development or assurance process
Optionally, `wireforge docs` turns the same model into requirements, design, test and traceability documents with test
and coverage results, change impact between revisions and ReqIF/CSV exchange with requirements tools (docs/LIFECYCLE.md,
docs/integration/). For projects that apply standards such as DO-178C, ISO 26262, IEC 61508 or IEC 62304, this evidence
supports your processes and your tool assessment; it does not by itself give conformity, certification or tool
qualification, which depend on the whole project and its assessor (docs/DO178C.md).

**Start with docs/GUIDE.md** (install, 5-minute quickstart, examples). Reference:

| Topic | Document |
|-------|----------|
| Definition format | docs/SCHEMA_SPEC.md, `schema/`, `examples/` |
| Command line and Python API | docs/CLI.md |
| Generated C++ and test project | docs/CODEGEN.md, docs/RUNTIME.md |
| Layout analysis / ICD export | docs/LAYOUT.md |
| Wireshark dissector (Lua plugin) | docs/WIRESHARK.md |
| Requirements, design and test documents | docs/LIFECYCLE.md |
| Fitting into a DO-178C process, tool integration | docs/DO178C.md, docs/integration/ |
| Server, web UI, MCP | docs/SERVER.md, docs/UI.md, docs/MCP.md |
| Secure deployment and operation | docs/SERVER.md, "Deployment and operation" |
| Importers (CSV/Excel ICD, C headers) | docs/IMPORT.md |
| Quality, safety, traceability | quality/QUALITY_POLICY.md, docs/SAFETY.md, docs/CODING_RULES.md |
| Architecture and design decisions | docs/ARCHITECTURE.md, docs/DECISIONS.md |

Development: see CONTRIBUTING.md (`pip install -e ".[dev]"`, `cmake --preset dev && cmake --build --preset dev && ctest
--preset dev`, all gates: `quality/run_all.sh`).

## License
The `runtime/` library is MIT-licensed (see runtime/LICENSE): code generated by WireForge belongs to you and depends
only on this MIT-licensed runtime, so shipping it in your product carries no restriction.

Everything else (the CLI, code generator, server, web UI, and MCP server) is licensed under the Business Source
License 1.1 (see LICENSE): free for development, testing, and evaluation; a commercial license is required for
production use. It converts to MIT on 2036-10-17. Contact the Licensor for commercial licensing.
