pkg.soopen package index

brew / rank 8880

Install libplctag with Homebrew, Nix

Portable and simple API for accessing AB PLC data over Ethernet. Version 2.7.0 via Homebrew; verified from local package data. Also installable with nix: nix profile install nixpkgs#libplctag.

install

Additional install commands

macOS

Homebrewverified · 100%
brew install libplctag

local Homebrew formula metadata

Linux

Nixverified · 92%
nix profile install nixpkgs#libplctag

nixpkgs package indexes · pkgs/by-name/li/libplctag/package.nix · source: api.github.com

overview

Package summary

Portable and simple API for accessing AB PLC data over Ethernet

Commands and aliases

  • modbus_server
  • tag_rw2

history

Project history and usage

libplctag is an open-source C library for reading and writing programmable-logic-controller tags over EtherNet/IP and Modbus TCP. It targets industrial automation users who need a small portable API instead of a broad OPC stack.

Project history

The upstream history page says the project began because the maintainers wanted the practical PLC access they needed without the cost, size, Windows/OLE dependency, and licensing constraints they associated with OPC implementations. They evaluated older PCCC libraries and TuxEIP, found licensing, portability, maintainability, and API-shape problems, then wrote their own library without copying TuxEIP code.

The README states that libplctag has been in production use since early 2012. Over time the project kept a C core, a deliberately small API, and examples/wrappers for higher-level languages.

Adoption history

Upstream describes production use across radio telescopes, manufacturing, fitness equipment, food handling, and other industrial settings. That adoption pattern is narrower than a general developer library but unusually practical: it is used where software talks to physical PLC-controlled systems.

The project also grew a wrapper ecosystem, including .NET, Go, Java, Julia, C++, Python, and Pascal bindings or examples. That made the C library a common native core for language-specific automation clients.

How it is used

Developers use libplctag to read and write PLC tag values, list tags, handle callbacks, and build small command-line or service tools around Allen-Bradley/Rockwell and Modbus TCP devices.

Package users see helper executables such as `tag_rw2` and examples, but the package's main role is as a native library dependency for industrial-control applications.

Why package nerds care

libplctag is notable because it packages industrial automation access as a normal open-source C dependency. That is unusual territory for package managers: real machinery, proprietary protocol history, cross-platform binaries, and wrappers all meet in one modest library.

The dual MPL-2.0/LGPL-2.0-or-later licensing also matters for integrators who need something less restrictive than GPL-only PLC code.

Timeline

  • 2012: The README states that libplctag has been in production use since early 2012.
  • 2022: The API wiki history records updates for 2.4.0 and 2.5.0 API changes.
  • 2026: The README lists tier-one platform testing across Linux, macOS, and Windows combinations.

Related projects

  • TuxEIP/TuxPLC is the abandoned earlier EtherNet/IP-related codebase discussed in libplctag's origin story.
  • libplctag.NET, goplctag, libplctag4j, and PLCTag.jl are related wrappers that expose the C core to other language ecosystems.
  • OPC is the larger industrial-automation integration family that libplctag's maintainers explicitly wanted to avoid for their narrower use case.

security posture

Risk level: blue

broad file, network, media, or database tool signal.

Risk classifier

blue risk · medium confidence · tool

Why

  • broad file, network, media, or database tool signal

Signals

  • text:server

Install behavior

  • No Homebrew bottle metadata was recorded.

Recommended review

Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.

executables

Installed executables

CommandKindExposureNote
modbus_serverexecutableindexed executableDiscovered from the local executable index.
tag_rw2executableindexed executableDiscovered from the local executable index.

freshness

Version and freshness

These signals separate page generation age, package-manager activity, and upstream release comparison. Version lag is warned only when an evidence URL and comparable versions are present.

page generated2026-08-03
manager version2.7.0
manager updated
local dataunknown
upstreamnot available
latest detectednot detected
  • okNo freshness warnings were generated.

install metadata

Package metadata

Package keybrew:libplctag
Version2.7.0
Package managerHomebrew
Homepagehttps://github.com/libplctag/libplctag
Repositoryhttps://github.com/libplctag/libplctag
Bottlenot recorded
Servicenone declared

source database matches

Other package-manager records

Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.

Nix95%

libplctag

nix profile install nixpkgs#libplctag
  • normalized package name match
  • Matched by: Libplctag
nixpkgs package indexes · api.github.com · nixpkgs package indexes: pkgs/by-name/li/libplctag/package.nix from https://api.github.com/repos/NixOS/nixpkgs/git/trees/master?recursive=1

source trail

Generated from repository data

This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.

Used sources

  • Geiger risk classifier
  • cross-ecosystem install command graph
  • curated package history
  • external package-manager database matches
  • pkg.so package database
  • pkgdb category and tag curation