macOS
brew install nesclocal Homebrew formula metadata
sudo port install nescMacPorts ports tree · lang/nesc/Portfile · source: api.github.com
brew
Programming language for deeply networked systems. Version 1.4.0 via Homebrew; verified 2026-06-22.
install
brew install nesclocal Homebrew formula metadata
sudo port install nescMacPorts ports tree · lang/nesc/Portfile · source: api.github.com
overview
Programming language for deeply networked systems
history
nesC is an extension of C designed for TinyOS and deeply networked embedded systems, especially wireless sensor-network motes. It is historically significant because it was the programming language that embodied TinyOS's component model, event-driven execution, split-phase operations, and whole-program analysis for extremely memory-constrained devices.
The nesC home page defines it as a C extension designed to embody TinyOS structuring concepts and execution model. TinyOS targeted sensor network nodes with very limited resources; the nesC page gives examples such as 8 KB of program memory and 512 bytes of RAM. The language built programs from wired components with provided and used interfaces, bidirectional commands/events, static linking, and whole-program compilation.
The 2003 PLDI paper by David Gay, Philip Levis, Robert von Behren, Matt Welsh, Eric Brewer, and David Culler presented nesC as a systems language for motes: tiny low-power nodes running concurrent reactive programs under severe memory and power constraints. The paper states that nesC had been used to implement TinyOS and significant sensor applications, and that nesC and TinyOS had been adopted by a large number of sensor-network research groups. In the introduction it says TinyOS was in use by more than 100 research groups worldwide.
The GitHub repository appears to be a later master repository: GitHub metadata retrieved on 2026-07-01 shows it created on 2012-12-17, archived, written mostly in C, with 107 stars and 54 forks. That repository status reflects the post-peak maintenance state, not the language's early-2000s research impact.
nesC's adoption followed TinyOS adoption in academic and embedded-sensor research. It was not a general-purpose C successor; it was a domain-specific language for mote applications where static allocation, event callbacks, interrupt-driven execution, and compile-time race checks mattered. Its examples and papers connect it to TinyDB, Mate, Surge, and other sensor-network applications.
In package-manager terms, nesC is a legacy research/runtime tool kept installable for people building old TinyOS code or studying sensor-network systems. The av.db source record shows Homebrew and MacPorts packaging. The Homebrew formula API reported stable version 1.4.0 and 1 install-on-request event in the prior 30 days when checked on 2026-07-01.
Users invoke `nescc` to compile TinyOS/nesC applications, with helper tools such as `nescc-mig`, `nescc-ncg`, and `nescc-wiring` for message/interface generation and wiring inspection. Practical use is mostly historical TinyOS development, reproducing academic sensor-network projects, and maintaining code for mote platforms.
nesC is important less because of present install volume and more because it records a complete research-era software stack: a language, compiler, operating system, component model, and hardware class co-designed for wireless sensor networks. It is the opposite of a random CLI; it is a fossil with real lineage.
security posture
broad file, network, media, or database tool signal. generalized runtime or code generation signal.
yellow risk · medium confidence · runtime
Before unattended agent use, check whether the tool reads plaintext credentials, writes remote state, publishes artifacts, or shells out to plugins.
executables
| Command | Kind | Exposure | Note |
|---|---|---|---|
nescc | cli | global executable | |
nescc-mig | cli | global executable | |
nescc-ncg | cli | global executable | |
nescc-wiring | cli | global executable |
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.
https://github.com/tinyos/nesc
install metadata
| Package key | brew:nesc |
|---|---|
| Version | 1.4.0 |
| Package manager | Homebrew |
| Package manager page | https://formulae.brew.sh/formula/nesc |
| Homepage | https://github.com/tinyos/nesc |
| Repository | https://github.com/tinyos/nesc |
| Upstream docs | https://github.com/tinyos/nesc#readme |
| License | GPL-2.0-only |
| Source archive | https://github.com/tinyos/nesc/archive/refs/tags/v1.4.0.tar.gz |
| Last updated | 2026-06-22T14:05:36-07:00 |
| Pulse | updated |
| Dependencies | emacs |
| Build dependencies | autoconf, automake, openjdk |
| Bottle | available (on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura, x86_64_linux) |
| Homebrew post-install | not defined |
| Service | none declared |
registry facts
| Source Database | Homebrew formula API |
|---|---|
| Tap | homebrew/core |
| Full Name | nesc |
| Version Scheme | 0 |
| Revision | 2 |
| Bottle Stable Root URL | https://ghcr.io/v2/homebrew/core |
| Deprecated | yes |
| Disabled | no |
| Keg Only | no |
| URL Keys |
|
source database matches
Matches are pulled from external package-manager indexes and kept separate from local Automic Vault package links.
nesc
sudo port install nescsource trail
This page is generated by av-web from the private package SQLite artifact built by scripts/generate-pkg-sqlite.py.
View the package source record on GitHub.