RPC远程过程调用,二进制封装,提供高吞吐低延迟的高性能RPC框架
大石头 authored at 2022-08-10 13:26:19
20.58 KiB
NewLife.Remoting
# NewLife.Remoting — Einheitliches Remoting-Framework (RPC + HTTP + WebSocket + SRMP) ![GitHub License](https://img.shields.io/github/license/NewLifeX/NewLife.Remoting?logo=github) ![NuGet Downloads](https://img.shields.io/nuget/dt/NewLife.Remoting?logo=nuget) ![NuGet](https://img.shields.io/nuget/v/NewLife.Remoting?logo=nuget) ![NuGet prerelease](https://img.shields.io/nuget/vpre/NewLife.Remoting?label=dev%20nuget&logo=nuget) ![NuGet Downloads (Extensions)](https://img.shields.io/nuget/dt/NewLife.Remoting.Extensions?logo=nuget) ![NuGet (Extensions)](https://img.shields.io/nuget/v/NewLife.Remoting.Extensions?logo=nuget) ![NuGet prerelease (Extensions)](https://img.shields.io/nuget/vpre/NewLife.Remoting.Extensions?label=dev%20nuget&logo=nuget) [![NativeAOT](https://github.com/NewLifeX/NewLife.Remoting/actions/workflows/aot.yml/badge.svg?branch=master)](https://github.com/NewLifeX/NewLife.Remoting/actions/workflows/aot.yml) [![test](https://github.com/NewLifeX/NewLife.Remoting/actions/workflows/test.yml/badge.svg?branch=master)](https://github.com/NewLifeX/NewLife.Remoting/actions/workflows/test.yml) <!-- metrics:start --> [![AOT smoke](https://img.shields.io/badge/AOT%20smoke-23%2F23-brightgreen?logo=dotnet)](/NewLife/NewLife.Remoting/Blob/master/Doc/AOT兼容性分析.md) [![TFM](https://img.shields.io/badge/TFM-7%20%28net45%20%E2%86%92%20net10.0%29-512BD4?logo=dotnet)](https://www.nuget.org/packages/NewLife.Remoting) [![locales](https://img.shields.io/badge/locales-31-2ea44f?logo=dotnet)](/NewLife/NewLife.Remoting/Blob/master/Doc/多语言本地化接入.md) <!-- metrics:end --> ![platform](https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS%20%7C%20Android%20%7C%20iOS-blue) ![arch](https://img.shields.io/badge/arch-x64%20%7C%20arm64%20%7C%20loongarch64%20%7C%20riscv64%20%7C%20s390x-orange) [![contributors](https://img.shields.io/github/contributors/NewLifeX/NewLife.Remoting?logo=github)](https://github.com/NewLifeX/NewLife.Remoting/graphs/contributors) <!-- lang:start --> 🌐 [English](/NewLife/NewLife.Remoting/Blob/master/README.md) | [简体中文](/NewLife/NewLife.Remoting/Blob/master/README.zh-CN.md) | [繁體中文](/NewLife/NewLife.Remoting/Blob/master/README.zh-TW.md) | [Español](/NewLife/NewLife.Remoting/Blob/master/README.es.md) | [日本語](/NewLife/NewLife.Remoting/Blob/master/README.ja.md) | [Français](/NewLife/NewLife.Remoting/Blob/master/README.fr.md) | [Português](/NewLife/NewLife.Remoting/Blob/master/README.pt.md) | [Русский](/NewLife/NewLife.Remoting/Blob/master/README.ru.md) | [한국어](/NewLife/NewLife.Remoting/Blob/master/README.ko.md) | [العربية](/NewLife/NewLife.Remoting/Blob/master/README.ar.md) <!-- lang:end --> NewLife.Remoting ist die einheitliche Remoting-Infrastruktur des NewLife-Stacks und besteht aus zwei NuGet-Paketen: | Paket | Rolle | Umfang | |:---|:-----|:------| | **NewLife.Remoting** | Kernbibliothek | RPC-Client/Server, Protokoll-Codecs, Verbindungsverwaltung, Streaming-Aufrufe, Client-Basisklassen, Kommando-Pipeline, Auto-Update | | **NewLife.Remoting.Extensions** | Erweiterungsbibliothek | Controller-Basisklassen, Minimal-API-Host, Geräteverwaltung, Token-Authentifizierung, Command-Response-Bus | Quellcode: https://github.com/NewLifeX/NewLife.Remoting > NuGet: `NewLife.Remoting` / `NewLife.Remoting.Extensions` > ⚠️ Diese Übersetzung kann veraltet sein; maßgeblich ist das [englische README](/NewLife/NewLife.Remoting/Blob/master/README.md). ## Dokumentationsindex | Dokument | Beschreibung | |------|------| | [Doc/需求文档.md](/NewLife/NewLife.Remoting/Blob/master/Doc/需求文档.md) | Anforderungen: Vision, Ziele, funktionale Anforderungen (RPC/STRM/CLNT/UPGD/SRV/CMD/AOT/L10N/EXT) | | [Doc/架构设计.md](/NewLife/NewLife.Remoting/Blob/master/Doc/架构设计.md) | Architektur: Schichten, Kernmodule, Speicherverwaltung, Teststrategie, Designentscheidungen | | [Doc/SRV-服务端架构.md](/NewLife/NewLife.Remoting/Blob/master/Doc/SRV-服务端架构.md) | Server-Architektur: Service-Schicht, Kernabläufe (Login/Registrierung/Logout/Heartbeat/Update/Ereignisse/Kommandos), Session-Lebenszyklus, Cluster-Betrieb | | [Doc/功能清单.md](/NewLife/NewLife.Remoting/Blob/master/Doc/功能清单.md) | Funktionsverfolgung: Status, laufende Punkte und Backlog | | [Doc/竞品分析.md](/NewLife/NewLife.Remoting/Blob/master/Doc/竞品分析.md) | Wettbewerbsanalyse: RPC-Frameworks und IoT-Kommandozustellung | | [Doc/SRMP.MD](/NewLife/NewLife.Remoting/Blob/master/Doc/SRMP.MD) | SRMP-Protokollspezifikation | | [Doc/RPC内存管理设计.md](/NewLife/NewLife.Remoting/Blob/master/Doc/RPC内存管理设计.md) | Zero-Copy-Speicherverwaltung | | [Doc/自动更新机制.md](/NewLife/NewLife.Remoting/Blob/master/Doc/自动更新机制.md) | Vollständiges Auto-Update-Design | | [Doc/重试策略.md](/NewLife/NewLife.Remoting/Blob/master/Doc/重试策略.md) | Wiederholungsstrategie: `IRetryPolicy` und exponentielles Backoff | | [Doc/AOT兼容性分析.md](/NewLife/NewLife.Remoting/Blob/master/Doc/AOT兼容性分析.md) | NativeAOT-Umfang, <!--aot-scenarios:start-->23<!--aot-scenarios:end--> geprüfte Szenarien (Smoke <!--aot-smoke:start-->23/23<!--aot-smoke:end-->), Anleitung und bekannte Grenzen | | [Doc/多语言本地化接入.md](/NewLife/NewLife.Remoting/Blob/master/Doc/多语言本地化接入.md) | Englische Laufzeitmeldungen, `Locales/*.yml`-Tabellen und `L.T`-Anleitung | | [Doc/README多语言规范.md](/NewLife/NewLife.Remoting/Blob/master/Doc/README多语言规范.md) | Sortierregeln, Generator-Skripte und CI-Gate für die 11 README-Sprachen | --- ## Highlights | Fähigkeit | Beschreibung | |:---------|------| | **RPC-Kern** | SRMP-Protokoll, JSON-/Binär-Codecs, Request-Pipeline, Client/Server, Cluster-Verwaltung, Metadaten, Retry-Policy, durchgehend asynchroner Server, TraceId-Tracing | | **STRM-Streaming** | Server-Streaming: `IAsyncEnumerable<T>` elementweise über SRMP und SSE | | **CLNT-Clientbasis** | Login/Heartbeat/Update/Kommandos/Ereignisse an einer Stelle, automatischer WS/SSE-Wechsel | | **UPGD-Auto-Update** | Erkennen → Herunterladen → Prüfen → Entpacken → Überschreiben → Neustart | | **SRV-Serverbasis** | ApiController/BaseController/BaseDeviceController, TokenService, IDeviceService; dasselbe Endpunktprotokoll als MVC und als Minimal-API (spiegelgleiche Implementierungen, durch Tests abgesichert) | | **CMD-Kommandos** | SessionManager + Event-Bus-Broadcast + WS/SSE/Ping-Kanäle | | **L10N-Lokalisierung** | Laufzeitmeldungen mit Englisch als Quelltext; `Locales/*.yml` liefern 31 integrierte Sprachen (inklusive vereinfachtem und traditionellem Chinesisch), fehlende Einträge fallen auf Englisch zurück; kein ResourceManager, keine Satellitenassemblys | | **AOT-Unterstützung** | Permanente AOT-Analyse ab net8.0 (0 Warnungen in Kernbibliothek und Extensions) + eigener Source-Generator (Dispatch-Tabelle, Stream-Pumps, Signaturerhalt); NativeAOT geprüft für <!--aot-scenarios:start-->23<!--aot-scenarios:end--> Szenarien, 11 Minimal-API-Szenarien und 6 XCode-Geräteszenarien (siehe AOT-Dokument §8) | ## Schnellstart **Fünf Zeilen Server, fünf Zeilen Client – RPC läuft:** ```csharp // === Server === var server = new ApiServer(12345); server.Register<MyController>(); server.Start(); public class MyController : ApiController { public String Ping(String name) => $"Hello {name}, {DateTime.Now:HH:mm:ss}"; // Streaming: IAsyncEnumerable<T> wird elementweise gesendet public async IAsyncEnumerable<String> StreamLogs(Int32 count) { for (var i = 0; i < count; i++) { await Task.Delay(100); yield return $"Log #{i}: {DateTime.Now:HH:mm:ss}"; } } } // === Client === var client = new ApiClient("tcp://127.0.0.1:12345"); client.Open(); // Normaler Aufruf var rs = await client.InvokeAsync<String>("My/Ping", new { name = "dev" }); // Streaming-Aufruf – Empfang der Server-Pushes await foreach (var log in client.InvokeStreamAsync<String>("My/StreamLogs", new { count = 10 })) Console.WriteLine(log); // Metadaten (TraceId wird automatisch gesetzt) client.Headers["TenantId"] = "tenant-01"; ``` ## Leistungsdaten | Kennzahl | Typisch | Labor-Spitze | |:----|:------:|:--------:| | TCP-Langzeitverbindungen | 10.000 | 4.000.000 | | RPC-Durchsatz | 100.000 TPS | 455.000 msg/s | | Latenz pro RPC | ~41 μs | — | | Zielframeworks | net45 / net461 / netstandard2.0 / netstandard2.1 / net6.0 / net8.0 / net10.0 (abgestimmt auf NewLife.Core v12; NativeAOT ab net8.0) | ## Upgrade auf v4 v4 ist auf NewLife.Core v12 abgestimmt und ändert die Netzwerkschicht. Vor dem Upgrade: - **Zwei Ports**: Der Hauptport bedient nur SRMP; HTTP muss explizit über `HttpPort` aktiviert werden (standardmäßig aus). - **Kein SRMP über WebSocket**: `ws://`/`wss://`-Adressen lösen jetzt `NotSupportedException` aus; verwenden Sie `tcp://`/`udp://` für SRMP und `http(s)://` für HTTP-Aufrufe. - **Codec-Typen entfernt**: `WsClient`, `HttpCodec`, `WebSocketClientCodec`, `WebSocketServerCodec` und die Frame-Methoden von `HttpMessage` entfallen; HTTP übernimmt der Core-`HttpServer`, benutzerdefiniertes Framing implementiert `IMessageCodec`. - **Englische Nachrichtenschlüssel**: Laufzeitmeldungen verwenden den englischen Quelltext als Schlüssel; vergleichen Sie `ApiCode` oder Fehlercodes statt lokalisierter Texte. - **Zielframeworks**: net5.0/net7.0/net9.0-Assets werden nicht mehr ausgeliefert; NuGet fällt automatisch auf das nächstliegende unterstützte Framework zurück. Die vollständige Liste steht in [ChangeLog.md](/NewLife/NewLife.Remoting/Blob/master/ChangeLog.md). --- ## Zusammenspiel mit anderen NewLife-Komponenten | Komponente | Nutzen | | ---- | -------- | | NewLife.Core | Logging, Konfiguration, Serialisierung, Lokalisierung, Objektpool, TimerX, Tracing | | NewLife.Net | Hochperformanter Netzwerk-Stack, WebSocket/Codecs, Port-Wiederverwendung | | NewLife.Redis | Verteilter Cache / Message-Queue für geteilte Sessions oder Push-Fanout | | Stardust | Knotenregistrierung, Config-Center, APM, Release-Center | | AntJob | Job-Scheduling und verteiltes Rechnen über ClientBase | | NewLife.MQTT / Modbus / IoT | Geräteprotokolle erfassen und über Remoting senden | ## Beiträge und Feedback Willkommen: Bug-Reports, Performance-PRs, neue Protokoll-Codecs, Controller-Beispiele, Dokumentation und neue Übersetzungen. Bitte im Issue angeben: Laufzeitumgebung, Zielframework, minimale Reproduktion und Logauszug. --- ## Ökosystem-Karte NewLife ist ein geschichtetes Ökosystem unabhängig versionierter Open-Source-Projekte. Die folgende Karte wird wortgleich in allen NewLife-Repositories verwendet; jedes Projekt verlinkt auf sein Repository und sein primäres NuGet-Paket. | Projekt | Funktion | Downloads | | --- | --- | --- | | **Grundlage** | | | | [NewLife.Core](https://github.com/NewLifeX/X) | Protokollierung, Konfiguration, Caching, Netzwerk, Serialisierung, Zeitplanung und APM-Tracing. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Core?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Core) | | [NewLife.XCode](https://github.com/NewLifeX/NewLife.XCode) | Daten-Middleware: einzelne Tabellen in der Größenordnung von zig Milliarden Zeilen, automatisches Sharding, Lese-/Schreibtrennung, über 10 Datenbanken. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.XCode?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.XCode) | | [NewLife.Net](https://github.com/NewLifeX/NewLife.Net) | Hochperformante Netzwerkbibliothek: 1,77 Mio. pps / 14,5 Gbps auf einer Maschine (TCP 1KB, 2026-10), 4 Mio. langlebige TCP-Verbindungen. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Net?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Net) | | [NewLife.Remoting](https://github.com/NewLifeX/NewLife.Remoting) | Protokollkommunikation und RPC-Framework für Client/Server-Anwendungen und IoT-Geräte. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Remoting?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Remoting) | | [NewLife.Agent](https://github.com/NewLifeX/NewLife.Agent) | Installiert .NET-Anwendungen als Betriebssystem-Dienste: Windows-Dienste und Linux-systemd. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Agent?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Agent) | | [NewLife.Templates](https://github.com/NewLifeX/NewLife.Zero) | `dotnet new`-Projektvorlagen für Konsole, Web, API, Dienst, Daten und IoT. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Templates?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Templates) | | **Daten & Messaging** | | | | [NewLife.Redis](https://github.com/NewLifeX/NewLife.Redis) | Redis-Client mit Mikrosekunden-Latenz, Millionen Operationen pro Sekunde und integrierten Nachrichtenwarteschlangen. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Redis?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Redis) | | [NewLife.RocketMQ](https://github.com/NewLifeX/NewLife.RocketMQ) | Vollständig verwalteter RocketMQ-Client für Apache RocketMQ und Alibaba Cloud Message Queue. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.RocketMQ?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.RocketMQ) | | [NewLife.MQTT](https://github.com/NewLifeX/NewLife.MQTT) | MQTT-Client und -Server, einschließlich Alibaba Cloud IoT-Anbindung. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.MQTT?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.MQTT) | | [NewLife.NovaDb](https://github.com/NewLifeX/NewLife.NovaDb) | Hybriddatenbank in C#: eingebettet oder im Netzwerk, relational, Zeitreihen, Nachrichtenwarteschlange und KV in einem. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.NovaDb?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.NovaDb) | | [NewLife.MySql](https://github.com/NewLifeX/NewLife.MySql) | MySql-Treiber und Hilfsschicht auf Basis des NewLife-Datenstacks. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.MySql?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.MySql) | | **Web, KI & verteilt** | | | | [NewLife.Cube](https://github.com/NewLifeX/NewLife.Cube) | Schnelles Framework für Administrationsplattformen: Berechtigungen, SSO, OAuth-Server und CRUD-Gerüst. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Cube?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Cube) | | [Stardust](https://github.com/NewLifeX/Stardust) | Verteilte Dienstplattform: Knotenverwaltung, APM, Konfigurationszentrum, Registry und Release-Center. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Stardust?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Stardust) | | [AntJob](https://github.com/NewLifeX/AntJob) | Plattform für verteilte Aufgaben und Echtzeit-Datenplanung mit Sharding, Wiederholungen und Backfill. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.AntJob?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.AntJob) | | [NewLife.AI](https://github.com/NewLifeX/NewLife.AI) | Einheitlicher Client für 46 LLM-Anbieter plus ChatAI, eine sofort einsatzbereite Web-Chat-Anwendung. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.AI?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.AI) | | **Industrie & IoT** | | | | [NewLife.IoT](https://github.com/NewLifeX/NewLife.IoT) | IoT-Standardbibliothek mit Protokollverträgen und Geräteabstraktionen. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.IoT?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.IoT) | | [NewLife.Modbus](https://github.com/NewLifeX/NewLife.Modbus) | Modbus-TCP/RTU/ASCII-Implementierung auf Basis von NewLife.IoT. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Modbus?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Modbus) | | [NewLife.Siemens](https://github.com/NewLifeX/NewLife.Siemens) | Siemens-SPS-Protokoll auf Basis von NewLife.IoT. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Siemens?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Siemens) | | [NewLife.Omron](https://github.com/NewLifeX/NewLife.Omron) | Omron-SPS-Protokoll auf Basis von NewLife.IoT. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Omron?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Omron) | | [NewLife.Melsec](https://github.com/NewLifeX/NewLife.Melsec) | Mitsubishi-Melsec-SPS-Protokoll auf Basis von NewLife.IoT. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Melsec?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Melsec) | | [NewLife.OPC](https://github.com/NewLifeX/NewLife.OPC) | OPC-Client für industriellen Datenzugriff. | — | | [NewLife.BACnet](https://github.com/NewLifeX/NewLife.BACnet) | BACnet-Protokollstack für die Gebäudeautomation. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.BACnet?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.BACnet) | | [ZeroIoT](https://github.com/NewLifeX/ZeroIoT) | Leichtgewichtige Open-Source-IoT-Plattform mit Gateway- und Geräteverwaltung. | — | | **Fahrzeugtelematik** | | | | [NewLife.JT808](https://github.com/NewLifeX/NewLife.JT808) | JT/T-808-Fahrzeugortungsprotokoll: über 70 Nachrichtenkörper, 2011/2013/2019. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.JT808?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.JT808) | | [NewLife.JT809](https://github.com/NewLifeX/NewLife.JT809) | JT/T-809-Plattform-zu-Plattform-Protokoll für Verkehrsbehörden. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.JT809?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.JT809) | | [NewLife.JT1078](https://github.com/NewLifeX/NewLife.JT1078) | JT/T-1078-Fahrzeugvideo: RTP-Parsing, FLV/fMP4-Remuxing und Live-Streaming. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.JT1078?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.JT1078) | | **Domänenkomponenten** | | | | [NewLife.Office](https://github.com/NewLifeX/NewLife.Office) | Ein Paket für Excel, Word, PPT, PDF und über 15 Dokumentformate. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Office?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Office) | | [NewLife.Audio](https://github.com/NewLifeX/NewLife.Audio) | Plattformübergreifendes Audio: Codecs, Geräte-I/O, DSP, Container und Streaming. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Audio?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Audio) | | [NewLife.Video](https://github.com/NewLifeX/NewLife.Video) | Videocodecs, Containerformate, Frame-Verarbeitung und Streaming. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Video?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Video) | | [NewLife.Map](https://github.com/NewLifeX/NewLife.Map) | Einheitliche Schnittstelle für Baidu, AMap, Tencent und Tianditu mit Geokodierung und Koordinatenumrechnung. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.Map?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.Map) | | [NewLife.IP](https://github.com/NewLifeX/NewLife.IP) | IPv4-Geolokalisierung mit einer offline speichergemappten Datenbank und einer Online-API als Fallback. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.IP?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.IP) | | **Werkzeuge & Produkte** | | | | [CrazyCoder](https://github.com/NewLifeX/XCoder) | Entwickler-Toolbox: Netzwerk, serielle Schnittstelle, Krypto, Regex, Modbus und MQTT. | [![NuGet](https://img.shields.io/nuget/dt/NewLife.XCoder?style=flat-square&logo=nuget&label=downloads)](https://www.nuget.org/packages/NewLife.XCoder) | | [GitCandy](https://github.com/NewLifeX/GitCandy) | Selbst gehostetes Git-Quellcode-Verwaltungssystem. | — | | [LuckyClover](https://github.com/NewLifeX/LuckyClover) | Installiert automatisch die passende .NET-Laufzeit, wenn es von einem älteren Host gestartet wird. | — | > Die Badges zeigen das primäre Paket jedes Projekts; Theme-, Erweiterungs- und Satellitenpakete sind auf den jeweiligen NuGet-Seiten aufgeführt.Die hier nicht aufgeführten über 30 Pakete (FTP, LoRa, Office-Erweiterungen, Protokolltreiber und mehr) sind in der [NewLifeX-Organisation](https://github.com/NewLifeX) und auf [newlifex.com](https://newlifex.com) verfügbar. --- ## Team <img src="https://newlifex.com/logo.png" width="48" align="right" alt="NewLife" /> NewLife wurde 2002 gegründet und widmet sich seit mehr als zwei Jahrzehnten dem .NET- und IoT-Ökosystem, betreut fast 100 Open-Source-Projekte (34 davon Hauptprojekte) und liefert integrierte Hard- und Softwarelösungen für die Bereiche Energie, Logistik, Gesundheitswesen, Industrieautomation und Internet. Unser Leitspruch lautet „Lernen kennt kein Dienstalter – wer es beherrscht, wird zum Lehrmeister“. Die Open-Source-Komponenten wurden <!--nuget-total:start-->6.48M<!--nuget-total:end--> Mal von NuGet heruntergeladen (ökosystemweit, Stand 2026-10). Website: https://newlifex.com · Open-Source-Organisation: https://github.com/NewLifeX <details> <summary>WeChat-Offizieller Account: 智能大石头 (zum Folgen scannen)</summary> ![智能大石头](https://newlifex.com/stone.jpg) </details> --- ## Lizenz MIT © NewLife. Kommerzielle Nutzung und Weiterentwicklung sind willkommen.