Skip to content
main
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
 
 
 
 
lib
 
 
old
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 

taps

An implementation of TAPS in C with protocol discovery.

The Transport Services API (TAPS) Working Group is standardizing an API that transport-layer protocols (broadly defined to include substrates above Layer 4, such as TLS, HTTP, and Websockets) present to applications. Applications request a transport with certain properties, and TAPS would select the protocol that best met those requirements. This would free applications from having to change when new protocols emerge. As the interface is asynchronous, it also simplifies adapting protocols to various hardware offloads. One objective of this project is a Linux C implementation of the latest version of the standard.

However, as of 2020 all known TAPS implementations could only select protocols native to the operating system. Another aim of this project is to implement "Transport Discovery" -- a means for TAPS to identify the protocol implementations available provided they meet user-specified trust criteria.

Getting Started

There are a number of packages you need for this: gcc, make, libyaml-dev, libevent, libevent-dev.

$ git clone https://github.com/f5networks/dynamic-taps.git
$ cd dynamic-taps
$ make
$ sudo make install
$ make examples
$ ./echoapp

This code launches a server on localhost on port 5555. You can telnet to it, and the server will echo back whatever you type.

You can also do 'make test' to run the unit tests.

Note: if your dynamic libraries are not in /usr/lib, you will have to modify kernel.yaml and the Makefile accordingly.

Architecture

See documents in the docs/ folder.

Contribution Guidelines

Contributions are welcome. However, F5 corporate policy requires contributors to complete the Contributor License Agreement in this directory and email it to j.moses@f5.com.

References

The interface between applications and TAPS is specified in documents available on the TAPS WG github.

The interface between TAPS and arbitrary protocol implementations is defined in an individual draft.

About

A TAPS implementation with an open interface to accept new transport implementations

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published