Skip to content

XML and XPath based volatile NoSQL stateless micro datasource for data exchange for web applications and IoT (implementation for Node.js)

License

Notifications You must be signed in to change notification settings

seanox/xml-micro-exchange-js

Repository files navigation

Description

The origin of the project is the desire for an easily accessible place for data exchange on the Internet. Inspired by JSON-Storages the idea of a feature-rich equivalent based on XML, XPath and XSLT was born. The focus should be on a public, volatile and short-term data exchange for (static) web-applications and IoT.

Just exchange data without an own server landscape.
Just exchange data without knowing and managing all clients.

XML-Micro-Exchange is a RESTful volatile NoSQL stateless micro datasource for the Internet. It is designed for easy communication and data exchange of web-applications and for IoT or for other Internet-based modules and components. The XML based datasource is volatile and lives through continuous use and expires through inactivity. They are designed for active and near real-time data exchange but not as a real-time capable long-term storage. Compared to a JSON storage, this datasource supports more dynamics, partial data access, data transformation, and volatile short-term storage.

Why all this?

  • Static web-applications on different clients want to communicate with each other, e.g. for games, chats and collaboration.
  • Smart sensors want to share their data and smart devices want to access this data and also exchange data with each other.
  • Clients can establish dynamically volatile networks.

In this communication are all participants.
No one is a server or master, all are equal and no one has to know the other.
All meet without obligation.

Features

  • RESTful
    The REST API supports the HTTP methods OPTIONS, GET, POST, PUT, PATCH, DELETE.
  • XPath
    XPath axes and functions are used for access, navigation and addressing of targets in the data source and it is an integral part of the URI with dynamic and functional effects.
  • Multible axes and targets
    An XPath axis can address several elements and attributes simultaneously, which can be changed with one call.
  • XPath Functions
    PUT and PATCH support XML structures and static values (text), as well as XPath functions that allow dynamic values.
  • Data Query
    Data can be queried in the form of XML structure or substructure if the XPath notation represents an axis, otherwise the XPath is interpreted as an XPath function and responded with the result as text. Thus XPath provides a dynamic syntax for queries.
  • Data Transformation
    The POST method supports data transformation via XSLT. Similar to GET, data can be queried and then transformed with an XSLT template transmitted via POST.
  • JSON Support
    All requests can be responded by the service in JSON format.
  • Security
    This aspect was deliberately considered and implemented here only in a very rudimentary form. The storage(-key) with a length of 1 - 64 characters and the individual root element can be regarded as secret. In addition, HTTPS is supported but without client certificate authorization.
  • ACME Challenge Support
    Support of ACME HTTP-01 challenge for automated certificate management e.g. with Let's Encrypt + Cerbot.
  • Containerization
    XML-Micro-Exchange is also available as a container image on Docker Hub: https://hub.docker.com/r/seanox/xmex

Licence Agreement

LIZENZBEDINGUNGEN - Seanox Software Solutions ist ein Open-Source-Projekt, im Folgenden Seanox Software Solutions oder kurz Seanox genannt.

Diese Software unterliegt der Version 2 der Apache License.

Copyright (C) 2024 Seanox Software Solutions

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

System Requirement

Downloads

Seanox XML-Micro-Exchange 1.4.1

Distributions for Microsoft Windows

Complete package without Node.js to use as a Windows service.

Seanox XML-Micro-Exchange 1.4.1

Docker Image

https://hub.docker.com/r/seanox/xmex

Free XML-Micro-Exchange

Before using, you must read, understand and agree to Terms of Service and Privacy Policy.

Web site and documentation
https://xmex.seanox.com/

Service Endpoint URL
https://xmex.seanox.com/xmex!
65536 Storages x 64 kB
Please do not get confused, the API is online.
Requests without storage identifier (see manual) are responded with status 400.

See also OpenAPI YAML or open OpenAPI YAML in a GUI.

It is a small server (1 Core, 1 GB, 10 GB SSD) in a big data center -- but apparently enough.
Sponsors are always welcome.
The project needs if possible more power.
It costs about 5 Euro per month for 65536 x 1024 kB with double CPU cores and double memory.

Example Multiplayer Snake (Online)
https://xmex.seanox.com/snake.html

Manual

Changes

1.4.1 20220717

BF: Statistic: Correction of the calculation of inbound / outbound
BF: Build: Optimization / correction of the release info process
CR: Build: Updated dependencies
CR: Build: Enhancement of Ant task clean for cleaning temporary test data
CR: Build: Renamed Ant libxml to install
CR: Build: Change from .credentials to environment variables
CR: Statistic: Changed execution time in seconds (was previously in minutes)
NT: Releases only as attachments on the GitHub release page
NT: Harmonization of version numbers for the different implementations

Read more

Contact

Issues
Requests
Mail