Giter Site home page Giter Site logo

michaelhou / tssx Goto Github PK

View Code? Open in Web Editor NEW

This project forked from goldsborough/tssx

0.0 2.0 0.0 429 KB

Transparently replace domain sockets with a fast shared memory channel

License: MIT License

CMake 2.54% C 84.64% C++ 12.32% Shell 0.51%

tssx's Introduction

TSSX

GitHub license

TSSX stands for transparent shared-memory socket exchange and is a system-level C library that silently replaces domain socket communication with a custom shared memory data channel, promising performance improvements up to an order of magnitude.

Usage

One of the core goals of TSSX is to be incredibly easy and hassle-free to integrate into your system. We use the LD_PRELOAD trick to transparently overwrite system-call symbols with our own, using the dynamic linker. As such, if ./happy-banana-server and ./happy-banana-client are your executables using write/read, send/recv or similar system-calls to communicate over domains sockets, then the following lines will execute your application with TSSX:

$ LD_PRELOAD=$PWD/path/to/libtssx-server.so ./happy-banana-server
$ LD_PRELOAD=$PWD/path/to/libtssx-client.so ./happy-banana-client

where libtssx-server.so and libtssx-client.so are the result of compiling our library. And that is it! You don't have to recompile a single line, the dynamic linker does all the magic for you. We support the complete standard Berkeley Socket API, with light implementations of fcntl to the extent that is relevant to domain sockets.

Compiling

The project can be built using CMake on Linux and OS X:

mkdir build
cd build
cmake ..
make

Which will compile the TSSX library into the build/source/tssx path. We also provide example programs in the try/ folder, compiled into build/try, with appropriate run scripts (for convenience) in the scripts/ directory (run them from build/try).

Publication

We are working on a publication and will update this section accordingly in the near future.

Authors

TSSX is developed by Peter Goldsborough, Alexander van Renen and Viktor Leis at the Chair for Database Systems of Technical University of Munich (TUM).

tssx's People

Contributors

goldsborough avatar alexandervanrenen avatar

Watchers

James Cloos avatar Michael avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.