{"id":18904966,"url":"https://github.com/seanox/xml-micro-exchange-php","last_synced_at":"2026-03-04T17:30:18.498Z","repository":{"id":78674433,"uuid":"253273310","full_name":"seanox/xml-micro-exchange-php","owner":"seanox","description":"XML and XPath based volatile NoSQL stateless micro datasource for data exchange for web applications and IoT  (implementation for PHP)","archived":false,"fork":false,"pushed_at":"2024-10-16T04:55:04.000Z","size":1132,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-16T22:57:31.549Z","etag":null,"topics":["cloud","data-storage","microservice","nosql","web-api","xml","xpath","xslt"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/seanox.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2020-04-05T15:57:29.000Z","updated_at":"2024-10-16T04:55:07.000Z","dependencies_parsed_at":null,"dependency_job_id":"a7336a01-5d7e-4180-b6c9-e68dc3826e4b","html_url":"https://github.com/seanox/xml-micro-exchange-php","commit_stats":null,"previous_names":["seanox/xml-micro-exchange-php"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanox%2Fxml-micro-exchange-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanox%2Fxml-micro-exchange-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanox%2Fxml-micro-exchange-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/seanox%2Fxml-micro-exchange-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/seanox","download_url":"https://codeload.github.com/seanox/xml-micro-exchange-php/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":239889026,"owners_count":19713702,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloud","data-storage","microservice","nosql","web-api","xml","xpath","xslt"],"created_at":"2024-11-08T09:09:59.146Z","updated_at":"2026-03-04T17:30:18.439Z","avatar_url":"https://github.com/seanox.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp\u003e\n  \u003ca href=\"https://github.com/seanox/xml-micro-exchange-php/pulls\n      title=\"Development is waiting for new issues / requests / ideas\"\n    \u003e\u003cimg src=\"https://img.shields.io/badge/development-passive-blue?style=for-the-badge\"\n  \u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/seanox/xml-micro-exchange-php/issues\"\n    \u003e\u003cimg src=\"https://img.shields.io/badge/maintenance-active-green?style=for-the-badge\"\n  \u003e\u003c/a\u003e\n  \u003ca href=\"http://seanox.com/contact\"\n    \u003e\u003cimg src=\"https://img.shields.io/badge/support-active-green?style=for-the-badge\"\n  \u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\n# Description\nThe origin of the project is the desire for an easily accessible place for data\nexchange on the Internet. Inspired by JSON-Storages the idea of a feature-rich\nequivalent based on XML, XPath and XSLT was born. The focus should be on a\npublic, volatile and short-term data exchange for (static) web-applications and\nIoT.\n\n__Just exchange data without an own server landscape.__  \n__Just exchange data without knowing and managing all clients.__\n\nXML-Micro-Exchange is a volatile NoSQL stateless micro datasource for the\nInternet. It is designed for easy communication and data exchange of\nweb-applications and for IoT or for other Internet-based modules and\ncomponents. The XML based datasource is volatile and lives through continuous\nuse and expires through inactivity. They are designed for active and near\nreal-time data exchange but not as a real-time capable long-term storage.\nCompared to a JSON storage, this datasource supports more dynamics, partial\ndata access, data transformation, and volatile short-term storage. \n\n__Why all this?__\n\n- Static web-applications on different clients want to communicate with each\nother, e.g. for games, chats and collaboration.\n- Smart sensors want to share their data and smart devices want to access this\ndata and also exchange data with each other.\n- Clients can establish dynamically volatile networks.\n\n__In this communication are all participants.__  \n__No one is a server or master, all are equal and no one has to know the other.__  \n__All meet without obligation.__\n\n\n# Features\n- __RESTful__  \n  The REST API supports the HTTP methods CONNECT, OPTIONS, GET, POST, PUT,\n  PATCH, DELETE. The CONNECT method is not a standard and the function can be\n  used alternatively via TOUCH or PUT without XPath.  \n- __XPath__  \n  XPath axes and functions are used for access, navigation and addressing of\n  targets in the data source and it is an integral part of the URI with dynamic\n  and functional effects.\n- __Multiple axes and targets__  \n  An XPath axis can address several elements and attributes simultaneously,\n  which can be changed with one call.\n- __XPath Functions__  \n  PUT and PATCH support XML structures and static values (text), as well as\n  XPath functions that allow dynamic values. \n- __Data Query__  \n  Data can be queried in the form of XML structure or substructure if the XPath\n  notation represents an axis, otherwise the XPath is interpreted as an XPath\n  function and responded with the result as text. Thus XPath provides a dynamic\n  syntax for queries.\n- __Data Transformation__  \n  The POST method supports data transformation via XSLT. Similar to GET, data\n  can be queried and then transformed with an XSLT template transmitted via\n  POST.\n- __JSON Support__  \n  All requests can be responded by the service in JSON format.\n- __Security__  \n  This aspect was deliberately considered and implemented here only in a very\n  rudimentary form. The storage name with a length of 1 - 64 characters and the\n  individual root element can be regarded as secret. For further security the\n  approach of Basic Authentication, Digest Access Authentication and/or\n  Server/Client certificates is followed, which is configured outside of the\n  XMEX (XML-Micro-Exchange) at the web server.\n\n\n# Licence Agreement\nLIZENZBEDINGUNGEN - Seanox Software Solutions ist ein Open-Source-Projekt, im\nFolgenden Seanox Software Solutions oder kurz Seanox genannt.\n \nDiese Software unterliegt der Version 2 der Apache License.\n\nCopyright (C) 2024 Seanox Software Solutions\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software distributed\nunder the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR\nCONDITIONS OF ANY KIND, either express or implied. See the License for the\nspecific language governing permissions and limitations under the License.\n\n\n# System Requirement\n- PHP 8.x or higher (+xsl)\n\n\n# Downloads\n[Seanox XML-Micro-Exchange 1.6.0](https://github.com/seanox/xml-micro-exchange-php/releases/download/1.6.0/seanox-xmex-1.6.0.zip)\n```\ncurl -LO https://github.com/seanox/xml-micro-exchange-php/releases/latest/download/seanox-xmex-latest.zip\n```\n\n\n# Docker Image\nhttps://hub.docker.com/r/seanox/xmex\n```\ndocker run -d -p 80:80/tcp --rm --name xmex seanox/xmex:php\n```\n\n\n# Free XML-Micro-Exchange\n__Before using, you must read, understand and agree to__\n__[Terms of Service](https://xmex.seanox.com/terms.html) and__\n__[Privacy Policy](https://xmex.seanox.com/privacy.html).__\n\n__Web site and documentation__  \n[https://xmex.seanox.com/](https://xmex.seanox.com/)  \n\n__Service Endpoint URL__  \n[https://xmex.seanox.com/xmex!](https://xmex.seanox.com/xmex!)   \n65536 Storages x 64 kB  \n__Please do not get confused, the API is online.  \nRequests without storage identifier (see [manual](manual/README.md#manual))\nare responded with status 400.__  \nSee also [OpenAPI YAML](https://raw.githubusercontent.com/seanox/xml-micro-exchange-php/master/sources/openAPI.yaml)\nor open [OpenAPI YAML in a GUI](https://xmex.seanox.com/openAPI.html).\n\nIt is a small server (1 vCore, 1 GB RAM, 10 GB SSD) in a big data center -- but\napparently enough.  \n__Sponsors are always welcome.__  \nIt costs about 5 Euro per month for 1,000,000 storages x 64 kB with double CPU\ncores and double memory.\n\n__Example Multiplayer Snake (Online)__  \nhttps://xmex.seanox.com/snake.html\n\n\n# Manual\n* [Table Of Contents](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/README.md#manual)\n* [Motivation](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/motivation.md)\n* [Installation](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/installation.md)\n* [Configuration](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/configuration.md)\n  * [Web Server](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/configuration.md#web-server)\n  * [Environment Variables](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/configuration.md#environment-variables)\n  * [Docker Image](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/configuration.md#docker-image)\n* [Terms](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/terms.md)\n* [Getting Started](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/getting-started.md)\n* [API](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/api.md)\n* [Error Handling](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/error-handling.md)\n* [Development](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/development.md)\n* [Test](https://github.com/seanox/xml-micro-exchange-php/blob/master/manual/test.md)\n\n\n# Changes\n## 1.6.0 20241223  \nBF: Service: Correction of REQUEST_URI for requests without protocol  \nBF: Service: Review and optimization  \nCR: Content: Added snake.html as example and little gimmick  \nCR: Service: Omission of the HTTP method TOUCH  \nCR: Service: Change from status code to 304 when creating  \nCR: Service: JSON transformation uses the Accept header  \n\n[Read more](https://raw.githubusercontent.com/seanox/xml-micro-exchange-php/master/CHANGES)\n\n\n# Contact\n[Issues](https://github.com/seanox/xml-micro-exchange-php/issues)  \n[Requests](https://github.com/seanox/xml-micro-exchange-php/pulls)  \n[Mail](https://seanox.com/contact)  \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanox%2Fxml-micro-exchange-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fseanox%2Fxml-micro-exchange-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fseanox%2Fxml-micro-exchange-php/lists"}