# Install nesc with Homebrew, MacPorts

Programming language for deeply networked systems. Version 1.4.0 via Homebrew; verified 2026-06-22.

## Install

```sh
sudo av install brew:nesc
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install nesc
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install nesc
```

  Evidence: MacPorts ports tree: lang/nesc/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

## Package facts

- **Package key:** brew:nesc
- **Package manager:** Homebrew
- **Package manager page:** <https://formulae.brew.sh/formula/nesc>
- **Version:** 1.4.0
- **Source summary:** Programming language for deeply networked systems
- **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
- **Generated:** 2026-07-08T07:18:31+00:00

## Executables

- nescc (cli)
- nescc-mig (cli)
- nescc-ncg (cli)
- nescc-wiring (cli)
- nescc (alias)
- nescc-mig (alias)
- nescc-ncg (alias)
- nescc-wiring (alias)

## Dependencies

- emacs

## Build dependencies

- autoconf
- automake
- openjdk

## Install behavior

- Post-install hook: not defined
- Bottle: available on arm64_big_sur, arm64_linux, arm64_monterey, arm64_sequoia, arm64_sonoma, arm64_tahoe, arm64_ventura, big_sur, catalina, monterey, sonoma, ventura

## Freshness

- Page generated: 2026-07-08
- Package-manager version: 1.4.0
- Package-manager updated: 2026-06-22
- Local data: ok
- Upstream repository: https://github.com/tinyos/nesc
- Upstream latest detected: v1.4.0 (current)
## Project history and usage

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.

### Project history

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.

### Adoption history

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.

### How it is used

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.

### Why package nerds care

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.

### Timeline

- 2003: PLDI paper 'The nesC Language: A Holistic Approach to Networked Embedded Systems' published.
- 2012-12-17: tinyos/nesc GitHub repository created as the master repository.
- 2018-12-16: GitHub metadata showed the repository's last push date when checked on 2026-07-01.
- 2026-07-01: Homebrew API reported stable version 1.4.0.

### Related projects

- TinyOS
- TinyDB
- Mate
- Surge
- wireless sensor networks
- motes

### Sources

- <https://api.github.com/repos/tinyos/nesc>
- <https://csl.stanford.edu/~pal/pubs/nesc-pldi03.pdf>
- <https://formulae.brew.sh/api/formula/nesc.json>
- <https://github.com/tinyos/nesc>
- <https://nescc.sourceforge.net/>


## Security Notes

broad file, network, media, or database tool signal. generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- broad file, network, media, or database tool signal
- generalized runtime or code generation signal

## Source Database Details

- **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:** stable

## Other Package-Manager Records

- MacPorts - nesc: normalized package name match | MacPorts ports tree: lang/nesc/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Related links

- [Source-control packages](https://www.automicvault.com/pkg/source-control-tools/) - Belongs to a source-control command family.
- [Secret-risk packages](https://www.automicvault.com/pkg/secret-risk-packages/) - Has protected-tool coverage, approval-gate, or non-low Geiger security signals.
- [Terminal utility packages](https://www.automicvault.com/pkg/terminal-utilities/) - Matched terminal and command-line workflow metadata.
- [Developer build packages](https://www.automicvault.com/pkg/developer-build-tools/) - Matched build, compiler, generator, or developer workflow metadata.
- [emacs](https://www.automicvault.com/pkg/brew/emacs/) - Runtime dependency declared by Homebrew.
- [autoconf](https://www.automicvault.com/pkg/brew/autoconf/) - Build dependency declared by Homebrew.
- [automake](https://www.automicvault.com/pkg/brew/automake/) - Build dependency declared by Homebrew.
- [openjdk](https://www.automicvault.com/pkg/brew/openjdk/) - Build dependency declared by Homebrew.
- [idris2](https://www.automicvault.com/pkg/brew/idris2/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [lisette](https://www.automicvault.com/pkg/brew/lisette/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [vala](https://www.automicvault.com/pkg/brew/vala/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [halide](https://www.automicvault.com/pkg/brew/halide/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [algol68g](https://www.automicvault.com/pkg/brew/algol68g/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [ats2-postiats](https://www.automicvault.com/pkg/brew/ats2-postiats/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [ballerina](https://www.automicvault.com/pkg/brew/ballerina/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [c3c](https://www.automicvault.com/pkg/brew/c3c/) - Shares av.db curated category or tags: cli, compiler, language-runtime, programming-language.
- [frege](https://www.automicvault.com/pkg/brew/frege/) - Local package facts share a topical domain. Shared terms: cli, compiler, language, language-runtime, programming.
- [hy](https://www.automicvault.com/pkg/brew/hy/) - Local package facts share a topical domain. Shared terms: cli, compiler, language, language-runtime, programming.
- [three-body](https://www.automicvault.com/pkg/brew/three-body/) - Local package facts share a topical domain. Shared terms: cli, compiler, language, language-runtime, programming.

## Combined YAML source

View the package source record on GitHub. [combined/nesc.yml](https://github.com/automic-vault/db/blob/main/combined/nesc.yml)


## Sources

- Nucleus package database
- Geiger risk classifier
- package-page enrichment
- curated package history
- package version freshness
- av.db category and tag curation
- package relationship graph
- external package-manager database matches
- cross-ecosystem install command graph
