All Projects → fuxedo → fuxedo

fuxedo / fuxedo

Licence: MIT License
An Open Source alternative to Oracle Tuxedo

Programming Languages

C++
36643 projects - #6 most used programming language
c
50402 projects - #5 most used programming language
M4
1887 projects
Makefile
30231 projects
Verilog
626 projects
shell
77523 projects

Projects that are alternatives of or similar to fuxedo

NiFi4Trading
NiFi Bundle for FIX Protocol
Stars: ✭ 14 (-6.67%)
Mutual labels:  middleware
whoops-middleware
PSR-15 compatible middleware for Whoops, the pretty error handler
Stars: ✭ 24 (+60%)
Mutual labels:  middleware
mooseware
💀 Skeleton for writing a middleware handler
Stars: ✭ 47 (+213.33%)
Mutual labels:  middleware
horse-jwt
Middleware for JWT in HORSE
Stars: ✭ 39 (+160%)
Mutual labels:  middleware
horse-logger
Middleware for access logging in HORSE
Stars: ✭ 25 (+66.67%)
Mutual labels:  middleware
express-xml-bodyparser
Simple XML body parser connect/express middleware
Stars: ✭ 64 (+326.67%)
Mutual labels:  middleware
AkamaiOPEN-edgegrid-php-client
PHP client library for Akamai {OPEN} EdgeGrid Authentication scheme (based on Guzzle)
Stars: ✭ 38 (+153.33%)
Mutual labels:  middleware
server-timing
Collect backend metrics and provide them as Server-Timing header in your responses
Stars: ✭ 34 (+126.67%)
Mutual labels:  middleware
AspNetCore.Weixin
An ASP.NET Core middleware for Wechat/Weixin message handling and apis. (微信公众平台/接口调用服务)
Stars: ✭ 24 (+60%)
Mutual labels:  middleware
interface-doc
The technical specification of the data interface that describes how to integrate the fiskaltrust Middleware into POS systems.
Stars: ✭ 17 (+13.33%)
Mutual labels:  middleware
xenon
A middleware abstraction library that provides a simple programming interface to various compute and storage resources.
Stars: ✭ 28 (+86.67%)
Mutual labels:  middleware
spiderable-middleware
🤖 Prerendering for JavaScript powered websites. Great solution for PWAs (Progressive Web Apps), SPAs (Single Page Applications), and other websites based on top of front-end JavaScript frameworks
Stars: ✭ 29 (+93.33%)
Mutual labels:  middleware
express-firebase-middleware
🔥 Express middleware for your Firebase applications
Stars: ✭ 53 (+253.33%)
Mutual labels:  middleware
connect-browser-sync
Connect middleware for BrowserSync
Stars: ✭ 16 (+6.67%)
Mutual labels:  middleware
rbac
RBAC - Simple, concurrent Role Based Access Control(GO)
Stars: ✭ 67 (+346.67%)
Mutual labels:  middleware
oryx
.NET Cross platform and highly composable middleware for building web request handlers in F#
Stars: ✭ 178 (+1086.67%)
Mutual labels:  middleware
express-ping
Let all your express applications expose a common API to inform about their internal status and health.
Stars: ✭ 50 (+233.33%)
Mutual labels:  middleware
doa
A middleware framework for Deno's http serve🦕. Transplanted from Koa with ❤️
Stars: ✭ 20 (+33.33%)
Mutual labels:  middleware
rmw ecal
ROS2 middleware based on eCAL
Stars: ✭ 30 (+100%)
Mutual labels:  middleware
jwt-auth
JSON Web Token Authentication for Laravel and Lumen
Stars: ✭ 46 (+206.67%)
Mutual labels:  middleware

Fuxedo

Making the world a better place through minimal message-oriented transport layers.

Build Status codecov Coverage Status

Why Fuxedo?

"Fuxedo is a one-piece tuxedo that combines the elegance of a tuxedo and the convenience of a jumpsuit."

Fuxedo is a toy project I started in late 2011 to play with C++11 and Boost libaries by building emulation of some Oracle Tuxedo APIs. Name of the project was just a word play about Tuxedo, BlackTie and "free"/"fun". Years later I have gained more experience and different bits and pieces about FML32, parsers, configuration files, shared memory, messages queues laying in my projects folder. I think it's time to put it all together.

It is also free to use, modify and distribute for commercial and non-commercial purposes.

What is Fuxedo?

Fuxedo is an open source implementation of X/Open XATMI specification and some Oracle Tuxedo extensions of the API. The goal is to provide source code compatibility with core Tuxedo functionality: ideally a recompilation will be sufficient to port software from Tuxedo to Fuxedo. Fuxedo also keeps Tuxedo's configuration file formats and conventions silently ignoring the obscure parts.

There is no definition of what "core functionality" is but I will start with the functions I use on daily basis. Things like TSAM, Jolt, SALT, queues and adapters are out of scope.

Currently C++17 is used as implementation language mostly to learn what the new standard offers. This choice makes some of XATMI C-style interfaces weird to implement but life is too short to write everything in C.

Currently implemented:

  • Typed buffers API
    • STRING - C-style null-terminated strings.
    • CARRAY - binary blobs.
    • FML32 - self-describing fielded buffer like binary XML or JSON. Supports multiple levels of nested FML32 buffers.
  • Boolean expressions of FML32 fielded buffers
  • Tuxedo-specific APIs
  • Programs
    • mkfldhdr32
    • ud32
    • tmloadcf/tmunloadcf
    • tmipcrm
    • buildserver
    • buildclient
    • buildtms
  • ...more to come

Supported API function list

  • Typed buffer functions
    • tpalloc
    • tprealloc
    • tpfree
    • tptypes
  • Service routine functions
    • tpservice
    • tpreturn
  • Advertising functions
    • tpadvertise
    • tpunadvertise
  • Request/response service functions
    • tpcall
    • tpacall
    • tpcancel
    • tpgetrply
  • Oracle Tuxedo XATMI extensions
    • tpimport/tpexport
    • tpinit/tpterm
  • Oracle Tuxedo XATMI transaction interface
    • tpopen/tpclose
    • tpbegin/tpabort/tpcommit
    • tpgetlev
    • tpsuspend/tpresume
  • X/Open TX interface
    • tx_open/tx_close
    • tx_begin/tx_rollback/tx_commit
    • tx_info
    • tx_set_commit_return/tx_set_transaction_control/tx_set_transaction_timeout
  • FML32
    • a lot
  • Boolean expressions
    • Fboolco32
    • Fboolpr32
    • Fboolev32
    • Ffloatev32

Compatibility with Oracle Tuxedo

Fuxedo tries to be compatible with Oracle Tuxedo for all functionality implemented so far. That is ensured by executing the same tests cases against both Fuxedo and Oracle Tuxedo:

  • Running make from install-tests folder will execute all "intergration tests" with whatever TUXDIR points to. That is done for every change in Fuxedo and time-to-time with Oracle Tuxedo 12.2
  • Part of unittests (FML32, Boolean expressions) are compiled and executed as "integration tests" under install-tests/unit

Some of the tests fail with Oracle Tuxedo and I have reported several issues to Oracle, some are fixed but require additional patches from Oracle to be installed.

More

Check out some other projects:

I'm interested to hear what features of Oracle Tuxedo your project is using and what should be implemented in Fuxedo. If you can share the code or let me take a look under NDA - even better.

For more information, support, features and development contact us at [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].