Skip to content
/ lixa Public

LIXA is a free Scalable Distributed Transaction Manager for Microservices and Modern Applications based on XA

License

Notifications You must be signed in to change notification settings

tiian/lixa

Repository files navigation

 _     _____  __    _  
| |   |_ _\ \/ /   / \    LIXA
| |    | | \  /   / _ \   LIbre XA
| |___ | | /  \  / ___ \  a free and open source XA Transaction Manager
|_____|___/_/\_\/_/   \_\ http://www.tiian.org/lixa/


 
*********
ABSTRACT:

LIXA, acronym of LIbre XA, is an open source and free software Transaction
Manager that implements:
- XTA, XA Transaction API, an interface specifically designed to supply
  TXaaS (Transaction as a Service) features in a FaaS (Function as a Service)
  ecosystem.
- the distributed transaction processing "XA specification" and
  the "TX (transaction demarcation) specification" according to the
  X/Open CAE Specification
LIXA is a Transaction Manager but it's not a Transaction Monitor: this is the
distinguishing feature of the project: it enables every application container,
like a web server or a shell, to become an XA compliant application server.
The client/server architecture of LIXA allows many application containers to
point a single LIXA state server: this is ideal where horizontal scalability is
a must and many identical application containers must refer to the same
transactional environment. 



********
LICENSE:

LIXA is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License version 2 as published
by the Free Software Foundation.

LIXA is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

******************
LICENSE EXCEPTION:

A piece of LIXA (liblixab, liblixac, liblixta and switch file wrappers) is
distributed under the terms of GNU Lesser General Public License version 2.1
as published by the Free Software Foundation.
The license exception allows the usage of the * LIBRARIES * provided by the LIXA
project under the terms of GNU Lesser General Public License version 2.1.



***************
SPECIAL THANKS:
August 1st, 2016: Christian Ferrari thanks Globetom Holdings (Pty) Ltd 
for its donation to Emergency NGO, an international charity that promotes 
a culture of peace, solidarity and respect for human rights providing free, 
high quality medical and surgical treatment to the victims of war, landmines 
and poverty.



**************
DOCUMENTATION:
Documentation is available in these places:
- local directory doc/manuals/index.html after tarball extraction
- http://www.tiian.org/lixa/manuals/html/index.html
- http://www.tiian.org/lixa/manuals/xta/C/index.html
- http://www.tiian.org/lixa/manuals/xta/CPP/index.html
- http://www.tiian.org/lixa/manuals/xta/Java/index.html

Some important things you should check in the documentation before going on:
1. check LIXA dependency looking at "Installation/System requirements"
2. understand LIXA installation procedure describe at "Installation/Configure,
   build and install"
3. if you are interested in the test procedure (after build), take a look to
   "Installation/Checking"
4. how to understand what's happening inside LIXA code is explained in
   "In Depth/Tracing"
5. examples are described in chapter "Development"

Doxygen source code documentation: how to extract from LIXA source code the
documentation of files, structs and functions (you must install Doxygen
http://www.stack.nl/~dimitri/doxygen/ before you can use it).
Please update doxygen.conf.in and change /var/www/lixa to a suitable 
destination in your system.
Use "configure" (see above) to produce "doxygen.conf" file.
If you installed Graphviz (http://www.graphviz.org/), configure should detect
it and would produce data and headers dependencies too.



******************
DOCKER CONTAINERS:
Docker images managed by the LIXA project are available in DockerHub:
https://hub.docker.com/u/lixa



********************
DEPENDENCIES REPORT:
O.S.            Feature         Packages
Ubuntu          Basic           make gcc libglib2.0-dev libxml2-dev uuid-dev pkg-config automake
Ubuntu		MySQL		mysql-server libmysqlclient-dev
Ubuntu		PostgreSQL	postgresql libpq-dev
Ubuntu          GnuCOBOL	open-cobol
Ubuntu		C++		g++
CentOS          Basic           gcc glib2-devel libxml2-devel libuuid-devel autoconf net-tools
CentOS		MySQL		mysql-server/mariadb-server mysql-devel/mariadb-devel
CentOS		PostgreSQL	postgresql postgresql-server postgresql-devel
RHEL 7.3	Basic		gcc glib2-devel libxml2-devel libuuid-devel
				autoconf net-tools libtool
Ubuntu		Python		swig python-dev python-setuptools
Ubuntu		Python3		swig python3-dev python3-setuptools
RHEL 7.5	Python		swig python-devel 

Ubuntu <= 18.04	Java		default-jdk rng-tools libmysql-java https://jdbc.postgresql.org/download/postgresql-42.2.5.jar
Ubuntu 20.04	Java		default-jdk rng-tools libmariadb-java libpostgresql-jdbc-java
CentOS 7.x	Java		java-1.8.0-openjdk* rng-tools
				mysql-connector-java
CentOS 8.x	Java		java-1.8.0-openjdk* rng-tools
				mariadb-java-client postgresql-jdbc
-
Optional packages:
O.S.		Feature		Packages
Ubuntu		doxygen		doxygen graphviz
Ubuntu		docbook		xsltproc docbook-xml docbook-xsl

Additional libraries are necessary for commercial third party Resource Managers
like Oracle DB, IBM DB2 and IBM MQ: additional details are available in the
"LIXA Reference Guide" manual.

Enjoy LIXA!
Ch.F.

About

LIXA is a free Scalable Distributed Transaction Manager for Microservices and Modern Applications based on XA

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published