PHPackages                             umich-its-tl/viadutoo - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. umich-its-tl/viadutoo

ActiveLibrary[Caching](/categories/caching)

umich-its-tl/viadutoo
=====================

Viadutoo: caching proxy endpoint for Caliper event data

1.1.0(10y ago)084proprietaryPHPPHP &gt;=5.4

Since Jan 8Pushed 9y ago8 watchersCompare

[ Source](https://github.com/tl-its-umich-edu/viadutoo)[ Packagist](https://packagist.org/packages/umich-its-tl/viadutoo)[ RSS](/packages/umich-its-tl-viadutoo/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (1)Dependencies (1)Versions (9)Used By (0)

Viadutoo
========

[](#viadutoo)

About
-----

[](#about)

Viadutoo (From the Portuguese word for viaduct, "viaduto". Pronounced as "vee-uh-DOO-too" or in IPA: \[vi.a.dˈu.tʊ\].) is a kind of caching proxy endpoint for Caliper event data. As a proxy, its purpose is to accept Caliper event payloads from sensors as quickly as possible, then resend them to a preconfigured upstream endpoint. If the upstream endpoint is unable to accept the event payload for some reason, the caching feature will store the event data in a database for future processing.

Requirements
------------

[](#requirements)

- PHP 5.4 or greater
- One of the following PHP HTTP client extensions:
    - curl (usually this is already included with PHP interpreter)
    - pecl\_http
- Composer (not strictly required, but highly recommended)
    - For installation details, see:

Usage
-----

[](#usage)

- Update the `composer.json` file in the root directory of your project as follows:

    - The `require` section should include the following:

        ```
        {
            "require": {
                "php": ">=5.4",
                "umich-its-tl/viadutoo": "1.1.0"
            }
        }
        ```
    - If a repository is not specified, Composer will install Viadutoo from Packagist (). However, to specify a GitHub repository as the source instead, include the following in the `repositories` section:

        ```
        {
            "repositories": [
                {
                    "type": "vcs",
                    "url": "https://github.com/tl-its-umich-edu/viadutoo"
                }
            ]
        }
        ```

        This is one way to specify your own repository, for example, if you want to modify your own fork of Viadutoo. You would specify the URL of your own repository.
- Use Composer to install the package with the command:

    ```
    composer install
    ```

    Composer will create the `vendor` directory to hold the package and other related information.
- Composer will create PHP classes to help you load Viadutoo (and any other packages it has loaded) into your application. In your PHP code, use it like:

    ```
    /*
     * If necessary, use set_include_path() to ensure the directory
     * containing the "vendor" directory is in the PHP include path.
     */
    require_once 'vendor/autoload.php';  // Composer loader for Viadutoo, etc.
    ```
- Initialize and use Viadutoo in your PHP code like this:

    ```
    $proxy = (new MessageProxy())
        ->setTransportInterface(
            (new CurlTransport()) // Recommended transport with cURL, supports Basic Auth and OAuth 1.0
                ->setAuthZType(CurlTransport::AUTHZ_TYPE_OAUTH1, 'OAuth 1.0 key', 'OAuth 1.0 secret') // Optional authZ
        )
        ->setEndpointUrl('http://example.com/endpoint')
        ->setTimeoutSeconds(10)
        ->setAutostoreOnSendFailure(true)
        ->setStorageInterface(
            new MysqlStorage(
                'mysql.example.org', 'dbUser', 'dbPassword',
                'dbName', 'viadutoo_events'
            )
        );
    // ...
    try {
        $proxy
            ->setHeaders($headers)
            ->setBody($jsonBody)
            ->send();
    } catch (Exception $exception) {
        error_log($exception->getMessage());
    }
    ```

    For a more detailed example of using Viadutoo in an application, see `public/index.php`.

Example
-------

[](#example)

An example application is included in the `public` directory. Execute it as:

```
cd public
php -S 127.0.0.1:8989

```

The application is written to send all data to `http://lti.tools/caliper/event?key=viadutoo`. Simply configure a Caliper sensor to send events to `http://127.0.0.1:8989/` and they will be sent on to the `lti.tools` endpoint.

###  Health Score

28

—

LowBetter than 51% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 99% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~72 days

Total

3

Last Release

3715d ago

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/20786?v=4)[Mr. Lance E Sloan «UMich»](/maintainers/lsloan)[@lsloan](https://github.com/lsloan)

---

Top Contributors

[![lsloan](https://avatars.githubusercontent.com/u/20786?v=4)](https://github.com/lsloan "lsloan (96 commits)")[![bethkirschner](https://avatars.githubusercontent.com/u/138902?v=4)](https://github.com/bethkirschner "bethkirschner (1 commits)")

---

Tags

learning-analyticsviadutoo

### Embed Badge

![Health badge](/badges/umich-its-tl-viadutoo/health.svg)

```
[![Health](https://phpackages.com/badges/umich-its-tl-viadutoo/health.svg)](https://phpackages.com/packages/umich-its-tl-viadutoo)
```

###  Alternatives

[iazaran/smart-cache

Smart Cache is a caching optimization package designed to enhance the way your Laravel application handles data caching. It intelligently manages large data sets by compressing, chunking, or applying other optimization strategies to keep your application performant and efficient.

21114.2k](/packages/iazaran-smart-cache)[phpfastcache/phpssdb

PHP SSDB Driver for phpFastCache

14736.9k1](/packages/phpfastcache-phpssdb)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
