<!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

         https://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>