OSS探訪GitHubでログイン

限られたメモリの組み込み機器へTCP/IP通信を組み込む軽量プロトコルスタック

スコアの見方

OSS規模スコアはStars・Watchers・Forks・Contributorsを対数圧縮して重み付けした現在の規模指標(上限なし)です。発掘スコアは現在のOSS規模スコアから発掘時点のOSS規模スコアを引いた値、更新ペースは直近30日Commit数、成長モメンタムは直近の観測期間におけるOSS規模スコア差、OSS健全度は取得できた更新状況・Community Health・Releaseの0〜100評価です。

Stars
1,762
主要言語
C
ライセンス
未判定
リポジトリ最終更新
2026/09/01
ページ内ナビ

概要

lwIPは、メモリ容量の小さい組み込み機器へTCP/IP通信を組み込むためのC製プロトコルスタックです。IPv4・IPv6、TCP・UDP、DHCP、DNSなどを備え、イベント駆動のraw API、順次実行型API、BSD風socket APIからシステム構成に合う接続方法を選べます。このGitHubリポジトリはSavannahで開発される公式ソースのミラーです。

特徴と向いている用途

公式資料に基づく紹介・実機未検証 · 内容確認日:

主な特徴

小さなメモリ容量でTCP/IPの主要機能を提供する

READMEは、数十KBの空きRAMと約40KBのROMを持つ組み込み環境を主な対象として説明しています。IPv4・IPv6、ICMP、TCP、UDP、DHCP、DNS、PPP、6LoWPANに加え、HTTPサーバー、MQTTクライアント、SNTPなどの応用機能を選択できます。

出典:[1]

実行環境に応じてAPIとOS連携方式を選ぶ

メモリ使用量を抑えやすいコールバック型のraw API、別スレッドから扱う順次実行型API、既存アプリケーションを移植しやすいBSD風socket APIを備えます。OSなしのmainloop方式と、TCPIP threadを使うOS方式では利用できるAPIと呼び出し規則が異なります。

出典:[2]

向いている用途

RTOSやベアメタル機器へ通信機能を移植する用途に向く

センサー、制御機器、IoT端末など、汎用OSのネットワーク機能をそのまま使えない環境に向きます。ネットワークインターフェース、タイマー、排他制御、メモリ割り当てを対象機器に合わせて実装し、必要なプロトコルだけを有効化したい場合に適しています。

出典:[1][2]

導入前の確認

移植層と実行コンテキストを機器ごとに設計する

lwIPは単体で完成するネットワークアプリケーションではありません。対象機器のドライバー、OS抽象化、タイマー、構成用のlwipopts.hを用意し、付属例を自分の環境へ合わせる必要があります。GitHub側のSPDX値はNOASSERTIONですが、固定版READMEはBSD licenseと明記しています。

raw APIは同じ実行コンテキストで動作し、コールバック内で処理を停止させてはいけません。公式文書は、受信処理やraw APIを割り込みコンテキストから直接呼ぶ設計を主要な落とし穴として挙げ、OS方式ではTCPIP threadまたは正しいコアロックを使うよう説明しています。

出典:[1][2]

参考にした公式資料

  1. [1]lwIP STABLE-2_2_1_RELEASE README(2026-10-04)
  2. [2]lwIP STABLE-2_2_1_RELEASE API and porting documentation(2026-10-04)
  3. [3]lwIP STABLE-2_2_1_RELEASE CMake configuration(2026-10-04)
編集部からの補足

機能一覧だけでなく、利用するAPI方式、OSの有無、ネットワークインターフェース、メモリ設定を一組として評価したい基盤部品です。特に割り込みとlwIPコアの実行境界は早い段階で設計してください。

3ステップで試す

  1. 1

    固定版のソースを取得する

    レビューしたlwIP 2.2.1のソースへ移動します。

    git clone --branch STABLE-2_2_1_RELEASE --depth 1 https://github.com/lwip-tcpip/lwip.git && cd lwip
  2. 2

    Unix向けサンプルを構成する

    リポジトリに含まれるUnix移植例の設定ひな型を試用用設定へコピーし、Linux、macOS、FreeBSDでexample_appを構成します。CMakeとCコンパイラが必要です。実機向けにはlwipcfg.hを対象環境に合わせて見直してください。

    cp contrib/examples/example_app/lwipcfg.h.example contrib/examples/example_app/lwipcfg.h && cmake -S . -B build
  3. 3

    サンプルをビルドする

    同じ作業ディレクトリで、リポジトリに含まれるcontribのUnix移植例をコンパイルします。これはホスト上の構成確認であり、対象機器への移植やネットワーク動作の確認ではありません。

    cmake --build build
公式READMEで確認

成長

成長の推移 · 直近30日

1,762 Stars

推移データを蓄積中です。

開発アクティビティ

直近90日・週次

Commit(直近30日)
0
Open PR
63

開発アクティビティを蓄積中です。

Built with

カテゴリとタグ

GitHubデータ

GitHubのデータGitHubの詳細データを見る
Stars
1,762
Forks
634
Watchers
36
Open Issues
0
Contributors
103
所有者種別
Organization
主要言語
C
ライセンス
未判定
リポジトリ最終更新
2026/09/01

このOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。

情報の誤りを報告

掲載内容に誤りや古い情報があればお知らせください。

このページを読んで、次に何をすればよいか分かりましたか?