WAMP Projects Overview¶
The Group of Projects and WAMP¶
This project is member of a group of projects all related to WAMP, and it is crucial to understand the interelation and dependencies between the projects in the group.
This is because those project “all fit together” not by accident, but because they were designed for this from the very beginning. That’s the whole reason they exist. WAMP.
It all starts from
WAMP: The Web Application Messaging Protocol (the protocol specification and website)
The WAMP protocol is the umbrella project, and compliance to its specification is a top-priority for the WAMP Client Library implementation projects in the group of projects:
Autobahn|Python: WebSocket & WAMP for Python on Twisted and asyncio.
Autobahn|JS: WAMP for Browsers and NodeJS.
Autobahn|Java: WebSocket & WAMP in Java for Android and Java 8
Autobahn|C++: WAMP for C++ in Boost/Asio
The only WAMP Router implementation project (currently) in the group of projects is
Crossbar.io: Crossbar.io is an open source networking platform for distributed and microservice applications. It implements the open Web Application Messaging Protocol (WAMP)
Again, compliance to the WAMP protocol implementation is a top-priority for Crossbar.io, as is compatibility with all WAMP Client Library implementation projects in the group of projects.
Further, it is crucial to understand that Crossbar.io is a Python project which builds on Autobahn|Python, and more so, it builds on Twisted.
While Crossbar.io only runs on Twisted, Autobahn|Python itself crucially supports both Twisted and asyncio (in the Python standard library) - by design.
This flexibility to allow users of Autobahn|Python to switch the underlying networking framework in Autobahn|Python between Twisted and asyncio seamlessly, and with almost zero code changes on the user side, is also crucial, and this capability is provided by
txaio: txaio is a helper library for writing code that runs unmodified on both Twisted and asyncio / Trollius.
Autobahn|Python further provides both WebSocket Client and Server implementations, another crucial capability used in Crossbar.io, the groups WAMP Router implementation project, and in Autobahn|Python, the groups WAMP Client Library implementation project for Python application code.
Stemming from the participation of the original developer (Tobias Oberstein) of the group of projects in the IETF HyBi working group during the RFC6455 specification, Autobahn|Python is also the basis for
Autobahn|Testsuite: The Autobahn|Testsuite provides a fully automated test suite to verify client and server implementations of The WebSocket Protocol (and WAMP) for specification conformance and implementation robustness.
Autobahn|Python fully conforms to RFC6455 and passes all of the hundreds of WebSocket implementation tests in Autobahn|Testsuite.
Finally, Crossbar.io has a number of advanced features requiring persistence, for example WAMP Event History (see WAMP Avanced Profile) and others, and these capabilities build on
zLMDB: Object-relational transactional in-memory database layer based on LMDB
which in turn is then used for the Crossbar.io specific embedded database features
cfxdb: cfxdb is a Crossbar.io Python support package with core database access classes written in native Python.
Building on top of WAMP, the XBR Protocol enables secure peer-to-peer data-trading and service microtransactions in Open Data Markets:
wamp-xbr: The XBR Protocol specification and smart contracts for secure data trading on top of WAMP. XBR sits on WAMP messaging middleware and enables trusted sharing and monetization of data and data-driven microservices between different parties.
Important Files¶
Overview of Project Development Process, Release Process, User & Developer Documentation, Contribution Policies, Audit Evidence, and related Files.
Files Unified across Projects¶
List of Files which are Synchronized (copied) across repositories:
File |
Format |
Purpose |
Where Rendered / Used |
|---|---|---|---|
MD |
Project Overview - this file |
GitHub, Sphinx (MyST) |
|
AI_POLICY.md |
MD |
AI policy for contributors |
GitHub, Sphinx (MyST) |
AI_AUDIT_PROCESS.md |
MD |
Hard-evidence audit process |
GitHub, Sphinx (MyST) |
AI_AUDIT_PROCESS_REVIEW.md |
MD |
Hard-evidence audit process review |
GitHub, Sphinx (MyST) |
MD |
AI policy for AI assistants |
Used by AI assistants |
|
.github/pull_request_template.md |
MD |
GitHub pull request template |
GitHub UI |
.github/ISSUE_TEMPLATE/config.yml |
MD |
GitHub issue template configuration |
GitHub UI |
.github/ISSUE_TEMPLATE/bug_report.md |
MD |
GitHub bug issue template |
GitHub UI |
.github/ISSUE_TEMPLATE/feature_request.md |
MD |
GitHub feature issue template |
GitHub UI |
sync_templates.py |
Python |
Synchronizes above files to repos |
Project Maintainer |
Files Specific to each Project¶
List of Files which are Project- or Repository-specific (not synchronized or copied):
File |
Format |
Purpose |
Where Rendered / Used |
|---|---|---|---|
MD |
Project intro, quick links |
GitHub, Sphinx (MyST) |
|
MD |
Project development process, quick links |
GitHub, Sphinx (MyST) |
|
MD |
Project release process, quick links |
GitHub, Sphinx (MyST) |
|
docs/ |
RST |
User/dev docs (with MD includes) |
Sphinx |
.audit/ |
MD |
Audit evidence files (per PR) directory |
Git, GitHub UI |
.audit/README.md |
MD |
Description of disclosure file contents |
Git, GitHub UI |