CI: Add silent cmake SonarCloud scan
[ric-plt/lib/rmr.git] / README
1 #
2 #==================================================================================
3 #       Copyright (c) 2020 Nokia
4 #       Copyright (c) 2018-2020 AT&T Intellectual Property.
5 #
6 #   Licensed under the Apache License, Version 2.0 (the "License");
7 #   you may not use this file except in compliance with the License.
8 #   You may obtain a copy of the License at
9 #
10 #       http://www.apache.org/licenses/LICENSE-2.0
11 #
12 #   Unless required by applicable law or agreed to in writing, software
13 #   distributed under the License is distributed on an "AS IS" BASIS,
14 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 #   See the License for the specific language governing permissions and
16 #   limitations under the License.
17 #==================================================================================
18 #
19
20 RIC Message Router -- RMR
21
22 RMR is a message router library which an application can use to send messages
23 to other RMR based applications. The destination of each message is governed
24 by the message type and subscription ID, or just the message type.  RMR is
25 responsible for establishing and managing each connection freeing the application
26 from any network connectivity management.
27
28 This repo contains the source and documentation for the core RMR library.
29 RMR python bindings are available as a submodule in the xapp-frame-py PyPI package at
30 https://pypi.org/project/ricxappframe/ and documented at https://docs.o-ran-sc.org/projects/o-ran-sc-ric-plt-xapp-frame-py/en/latest/.
31
32 The directories at the root level are as follows, each contains its own readme
33 file where additional details are necessary.
34
35
36 ci      This directory contains the continuous integration scripts needed
37         to build and verify RMR when changes are made and committed to the repo.
38
39 doc     RMR documentation is written in a document language and thus is
40         source code.  This directory contains the source for all generated
41         documentation.
42
43 docs    This is a 'canned' directory which is intended to be scraped. Direct
44         editing of documentation files in this directory is dangerous as
45         most of the files, even though checked into the repo per mandate,
46         are artifacts and will be overlaid if hand edited.
47
48 examples This directory contains example programmes which illustrate the use
49         of RMR.
50
51 ext     RMR makes use of NNG (next generation Nanomsg). The ext directory is
52         the git reference allowing the NNG code to be pulled and built as
53         a reference.
54
55 src     This directory is the top level source directory containing the
56         core RMR code.
57
58 test    All unit and application level tests for the core library are kept
59         within this directory.  Tests for bindings are managed within the
60         binding's directory under the source directory.
61
62 Top level pollution
63 There are several "configuration" files which sit at the top level of the
64 repo that are required for some sort of CI/CD/Documentation automation. Most,
65 if not all of the CI/CD goo is in the ci directory where it's out of the way
66 and thus not confusing. However, there is some pollution that can generally
67 be ignored:
68
69     tox.ini -- this seems to drive the scraper which pulls from docs and
70             writes to some external documentation repo/host.
71
72
73     .readthedocs.yaml -- this seems to be some configuration for the docs
74             scraping process(es).