CSE Runtime Features
In addition to the oneM2M standard functionalities, the ACME CSE implements additional features to help with deployments and to understand and learn about oneM2M.
Database Bindings
The following database bindings are supported:
- PostgreSQL
-
PostgreSQL is a powerful, open-source object-relational database system. The ACME CSE can be configured to use a local or remote PostgreSQL database for data storage.
- TinyDB "file-based"
-
TinyDB is a fast and lightweight document oriented database that is ideal for small installations.
- TinyDB "in-memory"
-
TinyDB can also be used as an in-memory database. This is useful for testing and small installations.
This database binding offers the fastest processing speed and response times. However, it offers no persistence of data between restarts.
Additional CSE Runtime Features
- HTTP Authorization
-
Basic support for basic and bearer (token) authorization.
- HTTP CORS
-
Support for Cross-Origin Resource Sharing to support http(s) redirects.
- HTTP WSGI
-
Support for the Python Web Server Gateway Interface to improve integration with a reverse proxy or API gateway, ie. Nginx.
- Recording Requests
-
Requests over Mca and Mcc to an from a CSE can be recorded. This may be used to inspect communication sequences between oneM2M entities and to debug requests.
- Script Interpreter
-
The CSE includes a Lisp-based script interpreter to extent CSE functionalities, implement simple AEs, prototypes, tests, and more.
- Text Console
-
Control and manage the CSE, inspect resources, and run scripts in a text console.
The log output is also displayed in the text console. - Testing: Upper Tester
-
Basic support for the Upper Tester protocol defined in oneM2M's TS-0019, and additional command execution support.
- Text UI
-
A text-based user interface to inspect resources and requests, configurations, stats, manage resources, display diagrams, and more.
- Web UI
-
A Web UI that displays the oneM2M resource tree and offers a basic REST UI.
Runtime Environments
The ACME CSE runs at least on the following runtime environments:
- Generic Linux
Including Raspberry Pi OS (32bit) on Raspberry Pi. - macOS
- MS Windows
- Jupyter Notebooks
ACME CSE can be run headless inside a Jupyter Notebook.