codbex / codbex-kronos

SAP HANA XS Classic and ABAP Compatibility Platform
https://codbex.com
Eclipse Public License 2.0
5 stars 3 forks source link
platform

codbex-kronos

Kronos is the official fork of the project "XSK" developed by SAP until 2022. This repository is well maintained by the same developers and free to be used by whom is interested.

Project Kronos

License GitHub contributors

Description

Compatible environment for SAP HANA Extended Application Services ( XS) based applications. It is deployed outside of SAP HANA instance as a Docker a container on Kubernetes. Hence, some of the features can work against any other JDBC compliant RDBMS such as PostgreSQL. The compatibility stack is an extension of the Eclipse Dirigible cloud development platform.

Note: the project is not yet ready to be used productively

Overview

Project documentation is available at: https://www.xsk.io

Background

In the SAP Cloud Platform Neo environment XS classic programming model (XSC) is supported via the HANA 1.x database. The XSC engine resides in the HANA system itself. It can scale up, but cannot scale out. It is based on the multi-threaded JavaScript runtime Mozilla Spydermonkey (Firefox's engine). It supports synchronous programming model. It can serve backend services in JavaScript, HTML5 and other static content. It supports OData v2.0 compatible services defined in an *.xsodata descriptors. It supports automatic tables, views, calculationviews materialisation based on proprietary formats.

Kronos approach is to provide a custom Eclipse Dirigible stack coming with XSC engine type. This engine is based on the standard Dirigible's JavaScript engine with several enhancements such as predefined XSC API pre-loaded ($. APIs), execution based on *.xsjs instead of *.js only, imports based on *.xsjslib instead of \.js.

There are corresponding APIs in Dirigible playing the same role as the ones in XSC (e.g. request, response, connection, etc.). A thin XSC bridge is provided for full compatibility.

The programming model is synchronous in multi-threaded environment (based on GraalJS). The descriptors for the table, views and calculationviews currently exists with the same life-cycle management, only the format is different. OData via descriptor approach is also available as part of the stack as well.

Kronos stack is based on Java (JVM), so all the available plugins and/or new frameworks from Apache, Eclipse, and other open source providers can be easily integrated as well.

Kronos stack can run within the HANA box, also in the virtual HANA system or outside in e.g. Kubernetes cluster, Kyma, Cloud Foundry, Open Stack.

To learn more go to: https://www.xsk.io

Requirements

Docker

docker pull ghcr.io/codbex/codbex-kronos:latest
docker run --name codbex-kronos --rm -p 80:80 ghcr.io/codbex/codbex-kronos:latest

Build

mvn clean install

Run

java -jar application/target/codbex-kronos-application-*-executable.jar

Debug

java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=8000 -jar application/target/codbex-kronos-application-*-executable.jar

Web

http://localhost

REST API

http://localhost/swagger-ui/index.html

FAQ

Cheat Sheet

Visit the cheat sheet here.

Readiness

Visit the readiness page here.

How to obtain support

All the bug reports as well as the feature requests have to be registered as issues.

Contributing

If you want to contribute, please check the Contribution Guidelines