File: OVERVIEW.md

package info (click to toggle)
python-txaio 25.6.1-2
  • links: PTS, VCS
  • area: main
  • in suites: experimental
  • size: 528 kB
  • sloc: python: 2,464; makefile: 226; sh: 48
file content (136 lines) | stat: -rw-r--r-- 6,505 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# Project Overview

## The Group of Projects and WAMP

This project is member of a _group of projects_ all related to
[WAMP](https://wamp-proto.org/), 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](https://github.com/wamp-proto/wamp-proto/): 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](https://github.com/crossbario/autobahn-python/):
  WebSocket & WAMP for Python on Twisted and asyncio.
- [Autobahn|JS](https://github.com/crossbario/autobahn-js): WAMP
  for Browsers and NodeJS.
- [Autobahn|Java](https://github.com/crossbario/autobahn-java):
  WebSocket & WAMP in Java for Android and Java 8
- [Autobahn|C++](https://github.com/crossbario/autobahn-cpp):
  WAMP for C++ in Boost/Asio

The only _WAMP Router implementation project_ (currently) in the
_group of projects_ is

- [Crossbar.io](https://github.com/crossbario/crossbar):
  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](https://twisted.org/).

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](https://github.com/crossbario/txaio/): txaio is a
  helper library for writing code that runs **unmodified** on
  **both** Twisted and asyncio / Trollius.

**Autobahn|Python** further provides both
[WebSocket](https://www.rfc-editor.org/rfc/rfc6455.html) _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](https://github.com/crossbario/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](https://github.com/crossbario/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](https://github.com/crossbario/cfxdb): cfxdb is a
  Crossbar.io Python support package with core database access
  classes written in native Python.

## 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 |
| ----------------------------------------- | ------ | ----------------------------------- | --------------------- |
| OVERVIEW.md                               | MD     | Project Overview - _this_ file      | GitHub, Sphinx (MyST) |
| AI_AUDIT_PROCESS.md                       | MD     | Hard-evidence audit process         | GitHub, Sphinx (MyST) |
| AI_POLICY.md                              | MD     | AI policy for contributors          | GitHub, Sphinx (MyST) |
| CLAUDE.md                                 | 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 |
| ---------------- | ------ | ---------------------------------------- | --------------------- |
| README.md        | MD     | Project intro, quick links               | GitHub, Sphinx (MyST) |
| CONTRIBUTING.md  | MD     | Project development process, quick links | GitHub, Sphinx (MyST) |
| RELEASING.md     | 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        |