wireforge 0.1.0__tar.gz → 0.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {wireforge-0.1.0 → wireforge-0.2.0}/LICENSE +7 -2
- {wireforge-0.1.0 → wireforge-0.2.0}/MANIFEST.in +2 -1
- {wireforge-0.1.0/codegen/wireforge.egg-info → wireforge-0.2.0}/PKG-INFO +23 -8
- {wireforge-0.1.0 → wireforge-0.2.0}/README.md +17 -6
- {wireforge-0.1.0 → wireforge-0.2.0}/cmake/package/WireForgeConfigVersion.cmake +1 -1
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/__init__.py +1 -1
- wireforge-0.2.0/codegen/wireforge/c_interface.py +937 -0
- wireforge-0.2.0/codegen/wireforge/c_model.py +1230 -0
- wireforge-0.2.0/codegen/wireforge/c_names.py +210 -0
- wireforge-0.2.0/codegen/wireforge/c_test_project.py +290 -0
- wireforge-0.2.0/codegen/wireforge/c_tests.py +1564 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cli.py +47 -8
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/compat.py +2 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cpp.py +19 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cpp_tests.py +74 -1
- wireforge-0.2.0/codegen/wireforge/dbc.py +683 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/expr.py +77 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/fmt.py +6 -2
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/generate.py +99 -32
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/loader.py +8 -1
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/mcp_server.py +2 -1
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/model.py +6 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/resources.py +5 -0
- wireforge-0.2.0/codegen/wireforge/scaling.py +141 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/server/app.py +14 -3
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/service.py +107 -23
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/test_project.py +13 -10
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/validate.py +16 -0
- {wireforge-0.1.0 → wireforge-0.2.0/codegen/wireforge.egg-info}/PKG-INFO +23 -8
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/SOURCES.txt +42 -1
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/requires.txt +4 -0
- wireforge-0.2.0/protocols/crsf/README.md +22 -0
- wireforge-0.2.0/protocols/crsf/project.yaml +128 -0
- wireforge-0.2.0/protocols/j1939/README.md +25 -0
- wireforge-0.2.0/protocols/j1939/project.yaml +78 -0
- wireforge-0.2.0/protocols/mavlink1/README.md +26 -0
- wireforge-0.2.0/protocols/mavlink1/app/include/mavsum/crc.h +48 -0
- wireforge-0.2.0/protocols/mavlink1/app/include/mavsum/crc.hpp +84 -0
- wireforge-0.2.0/protocols/mavlink1/plugins/__init__.py +1 -0
- wireforge-0.2.0/protocols/mavlink1/plugins/mavlink_crc.py +29 -0
- wireforge-0.2.0/protocols/mavlink1/project.yaml +110 -0
- wireforge-0.2.0/protocols/modbus_rtu/README.md +17 -0
- wireforge-0.2.0/protocols/modbus_rtu/project.yaml +116 -0
- wireforge-0.2.0/protocols/modbus_rtu/vectors/spec_examples.yaml +42 -0
- wireforge-0.2.0/protocols/modbus_tcp/README.md +14 -0
- wireforge-0.2.0/protocols/modbus_tcp/project.yaml +73 -0
- wireforge-0.2.0/protocols/modbus_tcp/vectors/spec_examples.yaml +34 -0
- wireforge-0.2.0/protocols/ubx/README.md +24 -0
- wireforge-0.2.0/protocols/ubx/app/include/ubx/fletcher8.hpp +54 -0
- wireforge-0.2.0/protocols/ubx/app/include/ubxsum/fletcher8.h +25 -0
- wireforge-0.2.0/protocols/ubx/plugins/__init__.py +1 -0
- wireforge-0.2.0/protocols/ubx/plugins/ubx_fletcher.py +20 -0
- wireforge-0.2.0/protocols/ubx/project.yaml +154 -0
- wireforge-0.2.0/protocols/ubx/vectors/examples.yaml +12 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/pyproject.toml +5 -1
- wireforge-0.2.0/runtime/include/wireforge/c/bits.h +177 -0
- wireforge-0.2.0/runtime/include/wireforge/c/bytes.h +269 -0
- wireforge-0.2.0/runtime/include/wireforge/c/codec.h +453 -0
- wireforge-0.2.0/runtime/include/wireforge/c/crc.h +53 -0
- wireforge-0.2.0/runtime/include/wireforge/c/expr.h +39 -0
- wireforge-0.2.0/runtime/include/wireforge/c/frame.h +222 -0
- wireforge-0.2.0/runtime/include/wireforge/c/link.h +213 -0
- wireforge-0.2.0/runtime/include/wireforge/c/ring.h +90 -0
- wireforge-0.2.0/runtime/include/wireforge/c/status.h +54 -0
- wireforge-0.2.0/runtime/include/wireforge/c/validation.h +104 -0
- wireforge-0.2.0/runtime/include/wireforge/c/wireforge.h +22 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/schema/project.schema.json +37 -2
- {wireforge-0.1.0 → wireforge-0.2.0}/setup.py +7 -1
- wireforge-0.1.0/ui/dist/assets/index-6Pomu6U4.js → wireforge-0.2.0/ui/dist/assets/index-BSyIeLp5.js +10 -10
- {wireforge-0.1.0 → wireforge-0.2.0}/ui/dist/index.html +1 -1
- {wireforge-0.1.0 → wireforge-0.2.0}/cmake/package/WireForgeConfig.cmake +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/cmake/package/WireForgeGenerate.cmake +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/bundle.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/ci_check.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/codec.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/coverage_points.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cpp_codec.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/cpp_interface.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/differential.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/docs_markdown.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/findings.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/golden.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/hlr_import.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/impact.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/importers.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/issues.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/layout.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/lifecycle.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/lifecycle_results.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/lifecycle_rules.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/lifecycle_runtime.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/llr.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/llr_ids.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/plain.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/py.typed +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/reqif.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/results.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/runtime_reqs.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/schema.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/server/__init__.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/server/oidc.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/server/storage.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/templates/command/project.yaml +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/templates/raw/project.yaml +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/templates/telemetry/project.yaml +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/test_cases.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/trace.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/vcs.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/vectors.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/versioning.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/wireshark.py +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge/wireshark_runtime.lua +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/dependency_links.txt +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/entry_points.txt +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/codegen/wireforge.egg-info/top_level.txt +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/LICENSE +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/array_access.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/bit_utils.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/byte_io.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/checksum.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/codec_support.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/config.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/delegate.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/dispatcher.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/expr_support.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/frame_decoder.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/frame_layout.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/link.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/lock.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/ring_buffer.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/span.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/static_vector.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/status.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/transport.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/validation.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/include/wireforge/version.hpp +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/runtime/requirements.yaml +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/schema/deviations.schema.json +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/schema/fragment.schema.json +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/schema/llr_ids.schema.json +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/schema/runtime_requirements.schema.json +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/setup.cfg +0 -0
- {wireforge-0.1.0 → wireforge-0.2.0}/ui/dist/assets/index-GVdDyUAG.css +0 -0
|
@@ -9,8 +9,13 @@ Licensed Work: WireForge (this repository), excluding the contents of the
|
|
|
9
9
|
is (c) 2026 Oguzhan KAYNAK.
|
|
10
10
|
Additional Use Grant: You may use the Licensed Work for development, testing,
|
|
11
11
|
evaluation, and other non-production purposes free of
|
|
12
|
-
charge.
|
|
13
|
-
|
|
12
|
+
charge. Running the Licensed Work in continuous
|
|
13
|
+
integration to validate projects, compare them with
|
|
14
|
+
earlier revisions, and generate, build and run their
|
|
15
|
+
tests is a non-production purpose, including for
|
|
16
|
+
commercial products. Any other production use of the
|
|
17
|
+
Licensed Work requires a commercial license from the
|
|
18
|
+
Licensor.
|
|
14
19
|
Change Date: 2036-10-17
|
|
15
20
|
Change License: MIT
|
|
16
21
|
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
include LICENSE README.md
|
|
4
4
|
include runtime/LICENSE runtime/requirements.yaml
|
|
5
5
|
recursive-include schema *.json
|
|
6
|
-
recursive-include runtime/include *.hpp
|
|
6
|
+
recursive-include runtime/include *.hpp *.h
|
|
7
7
|
recursive-include cmake/package *
|
|
8
|
+
recursive-include protocols *
|
|
8
9
|
recursive-include ui/dist *
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: wireforge
|
|
3
|
-
Version: 0.
|
|
4
|
-
Summary: Schema-driven wire-format toolkit: C++17 code generation, validation, server and MCP.
|
|
3
|
+
Version: 0.2.0
|
|
4
|
+
Summary: Schema-driven wire-format toolkit: C++17 and C99 code generation, validation, server and MCP.
|
|
5
5
|
Author: Oguzhan KAYNAK
|
|
6
6
|
License-Expression: BUSL-1.1 AND MIT
|
|
7
7
|
Requires-Python: >=3.10
|
|
@@ -36,14 +36,18 @@ Requires-Dist: openpyxl>=3.1; extra == "dev"
|
|
|
36
36
|
Requires-Dist: joserfc>=1.0; extra == "dev"
|
|
37
37
|
Requires-Dist: types-openpyxl; extra == "dev"
|
|
38
38
|
Requires-Dist: pymodbus==3.16.1; extra == "dev"
|
|
39
|
+
Requires-Dist: cantools==45.0.0; extra == "dev"
|
|
40
|
+
Requires-Dist: pyubx2==1.3.8; extra == "dev"
|
|
41
|
+
Requires-Dist: pymavlink==2.4.50; extra == "dev"
|
|
42
|
+
Requires-Dist: crsf-parser==0.3.2; extra == "dev"
|
|
39
43
|
Dynamic: license-file
|
|
40
44
|
|
|
41
45
|
# WireForge
|
|
42
46
|
|
|
43
|
-
Schema-driven wire-format toolkit for C++17: describe binary messages in YAML (by hand, in the web UI, through
|
|
44
|
-
or an AI agent) and generate allocation-free
|
|
45
|
-
GoogleTest project that proves them against a reference codec and gates the
|
|
46
|
-
function coverage.
|
|
47
|
+
Schema-driven wire-format toolkit for C++17 and C99: describe binary messages in YAML (by hand, in the web UI, through
|
|
48
|
+
the CLI or an AI agent) and generate allocation-free serializers, validators, framers and dispatchers (C++17, or C99
|
|
49
|
+
with `--language c`) together with a GoogleTest project that proves them against a reference codec and gates the
|
|
50
|
+
generated code at 100 % line, branch and function coverage.
|
|
47
51
|
|
|
48
52
|
- The wire format is imposed by the remote party: generated code never adds bytes.
|
|
49
53
|
- Runtime and generated code use only pre-allocated storage: no heap, no exceptions, no RTTI required.
|
|
@@ -75,17 +79,28 @@ qualification, which depend on the whole project and its assessor (docs/DO178C.m
|
|
|
75
79
|
| Fitting into a DO-178C process, tool integration | docs/DO178C.md, docs/integration/ |
|
|
76
80
|
| Server, web UI, MCP | docs/SERVER.md, docs/UI.md, docs/MCP.md |
|
|
77
81
|
| Secure deployment and operation | docs/SERVER.md, "Deployment and operation" |
|
|
78
|
-
| Importers (CSV/Excel ICD, C headers) | docs/IMPORT.md |
|
|
82
|
+
| Importers (CSV/Excel ICD, C headers, CAN databases) | docs/IMPORT.md |
|
|
83
|
+
| Published protocols (Modbus, CRSF, J1939, MAVLink 1, UBX; `wireforge init --protocol`) | docs/GUIDE.md, `protocols/` |
|
|
79
84
|
| Quality, safety, traceability | quality/QUALITY_POLICY.md, docs/SAFETY.md, docs/CODING_RULES.md |
|
|
80
85
|
| Architecture and design decisions | docs/ARCHITECTURE.md, docs/DECISIONS.md |
|
|
81
86
|
|
|
82
87
|
Development: see CONTRIBUTING.md (`pip install -e ".[dev]"`, `cmake --preset dev && cmake --build --preset dev && ctest
|
|
83
88
|
--preset dev`, all gates: `quality/run_all.sh`).
|
|
84
89
|
|
|
90
|
+
## GitHub Action
|
|
91
|
+
`oguzhankynk/wireforge` is also a GitHub Action that validates a project, checks wire compatibility with the base of a
|
|
92
|
+
pull request and runs the generated tests (docs/integration/github_actions.md):
|
|
93
|
+
|
|
94
|
+
```yaml
|
|
95
|
+
- uses: oguzhankynk/wireforge@v0.2.0
|
|
96
|
+
with: { project: icd }
|
|
97
|
+
```
|
|
98
|
+
|
|
85
99
|
## License
|
|
86
100
|
The `runtime/` library is MIT-licensed (see runtime/LICENSE): code generated by WireForge belongs to you and depends
|
|
87
101
|
only on this MIT-licensed runtime, so shipping it in your product carries no restriction.
|
|
88
102
|
|
|
89
103
|
Everything else (the CLI, code generator, server, web UI, and MCP server) is licensed under the Business Source
|
|
90
104
|
License 1.1 (see LICENSE): free for development, testing, and evaluation; a commercial license is required for
|
|
91
|
-
production use
|
|
105
|
+
production use, except that running it in continuous integration (validation, comparison with earlier
|
|
106
|
+
revisions, generated tests) is free, also in commercial product repositories. It converts to MIT on 2036-10-17. Contact the Licensor for commercial licensing: kaynak.oguzhan0@gmail.com.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
# WireForge
|
|
2
2
|
|
|
3
|
-
Schema-driven wire-format toolkit for C++17: describe binary messages in YAML (by hand, in the web UI, through
|
|
4
|
-
or an AI agent) and generate allocation-free
|
|
5
|
-
GoogleTest project that proves them against a reference codec and gates the
|
|
6
|
-
function coverage.
|
|
3
|
+
Schema-driven wire-format toolkit for C++17 and C99: describe binary messages in YAML (by hand, in the web UI, through
|
|
4
|
+
the CLI or an AI agent) and generate allocation-free serializers, validators, framers and dispatchers (C++17, or C99
|
|
5
|
+
with `--language c`) together with a GoogleTest project that proves them against a reference codec and gates the
|
|
6
|
+
generated code at 100 % line, branch and function coverage.
|
|
7
7
|
|
|
8
8
|
- The wire format is imposed by the remote party: generated code never adds bytes.
|
|
9
9
|
- Runtime and generated code use only pre-allocated storage: no heap, no exceptions, no RTTI required.
|
|
@@ -35,17 +35,28 @@ qualification, which depend on the whole project and its assessor (docs/DO178C.m
|
|
|
35
35
|
| Fitting into a DO-178C process, tool integration | docs/DO178C.md, docs/integration/ |
|
|
36
36
|
| Server, web UI, MCP | docs/SERVER.md, docs/UI.md, docs/MCP.md |
|
|
37
37
|
| Secure deployment and operation | docs/SERVER.md, "Deployment and operation" |
|
|
38
|
-
| Importers (CSV/Excel ICD, C headers) | docs/IMPORT.md |
|
|
38
|
+
| Importers (CSV/Excel ICD, C headers, CAN databases) | docs/IMPORT.md |
|
|
39
|
+
| Published protocols (Modbus, CRSF, J1939, MAVLink 1, UBX; `wireforge init --protocol`) | docs/GUIDE.md, `protocols/` |
|
|
39
40
|
| Quality, safety, traceability | quality/QUALITY_POLICY.md, docs/SAFETY.md, docs/CODING_RULES.md |
|
|
40
41
|
| Architecture and design decisions | docs/ARCHITECTURE.md, docs/DECISIONS.md |
|
|
41
42
|
|
|
42
43
|
Development: see CONTRIBUTING.md (`pip install -e ".[dev]"`, `cmake --preset dev && cmake --build --preset dev && ctest
|
|
43
44
|
--preset dev`, all gates: `quality/run_all.sh`).
|
|
44
45
|
|
|
46
|
+
## GitHub Action
|
|
47
|
+
`oguzhankynk/wireforge` is also a GitHub Action that validates a project, checks wire compatibility with the base of a
|
|
48
|
+
pull request and runs the generated tests (docs/integration/github_actions.md):
|
|
49
|
+
|
|
50
|
+
```yaml
|
|
51
|
+
- uses: oguzhankynk/wireforge@v0.2.0
|
|
52
|
+
with: { project: icd }
|
|
53
|
+
```
|
|
54
|
+
|
|
45
55
|
## License
|
|
46
56
|
The `runtime/` library is MIT-licensed (see runtime/LICENSE): code generated by WireForge belongs to you and depends
|
|
47
57
|
only on this MIT-licensed runtime, so shipping it in your product carries no restriction.
|
|
48
58
|
|
|
49
59
|
Everything else (the CLI, code generator, server, web UI, and MCP server) is licensed under the Business Source
|
|
50
60
|
License 1.1 (see LICENSE): free for development, testing, and evaluation; a commercial license is required for
|
|
51
|
-
production use
|
|
61
|
+
production use, except that running it in continuous integration (validation, comparison with earlier
|
|
62
|
+
revisions, generated tests) is free, also in commercial product repositories. It converts to MIT on 2036-10-17. Contact the Licensor for commercial licensing: kaynak.oguzhan0@gmail.com.
|