<!DOCTYPE html>
<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You under the Apache License, Version 2.0
    (the "License"); you may not use this file except in compliance with
    the License.  You may obtain a copy of the License at

         http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.
-->
<html>
<head>
    <meta charset="utf-8">
    <title>plc4x.apache.org/plc4go</title>
    <meta name="go-import" content="plc4x.apache.org/plc4go git https://github.com/apache/plc4x/plc4go">
    <meta name="go-source" content="plc4x.apache.org/plc4go https://github.com/apache/plc4x/plc4go https://github.com/apache/plc4x/tree/release/plc4go{/dir} https://github.com/apache/plc4x/tree/release/plc4go{/dir}/{file}#L{line}">
    <style>
        * { font-family: sans-serif; }
        body { margin-top: 0; }
        .content { display: inline-block; }
        code { display: block; font-family: monospace; font-size: 1em; background-color: #d5d5d5; padding: 1em; margin-bottom: 16px; }
        ul { margin-top: 16px; margin-bottom: 16px; }
    </style>
</head>
<body>
<div class="content">
    <h2>plc4x.apache.org/plc4go</h2>
    <code>go get plc4x.apache.org/plc4go</code>
    <code>import "plc4x.apache.org/plc4go"</code>
    Home: <a href="https://github.com/apache/plc4x">https://github.com/apache/plc4x/plc4go</a><br/>
    Source: <a href="https://github.com/apache/plc4x">https://github.com/apache/plc4x/plc4go</a>
</div>
</body>
</html>