PicoServer 是一款轻量级跨平台 Web 请求胶水库,单 DLL 几十 KB,可集成进任意 .NET 程序,不依赖 IIS、Kestrel,集成简单、不入侵业务,高性能、高稳定,低资源消耗。无论是轻量级 Web API、WebSocket 实时通信、边缘计算 Web 服务,各类网关,还是轻量流媒体服务器,用它都恰到好处。

✨ PicoServer 核心特色

📦 开箱即用:内置路由、Token/JWT 认证、请求解析、WebAPI、WebSocket、静态文件服务、跨域等能力,覆盖基础 Web 场景。
🌍 跨平台兼容:基于 .NET Standard 2.0,支持 .NET Framework 4.6.1+ / Core / 5 / 6+,兼容 Win/Linux/macOS。
🔗 胶水特性:无缝配合第三方库,无需改动原有业务代码,轻松嵌入任意 .NET 程序,实现无侵入集成。
🚀 极速低耗:异步非阻塞架构,支持 AOT 编译,响应迅速,单 DLL 仅几十 KB,不拖垮主程序。
✨ 自由集成:通过 AddRoute 与 AddMiddleware 实现高度定制,逻辑全程可见可控,无黑盒封装。

❤️ 像写方法一样写 WebAPI

很多 .NET 开发者在桌面和设备领域经验丰富,但 Web 并不是主要方向。PicoServer 让你无需成为 Web 专家,也能为应用快速添加 Web 能力,实现更现代的交互方式,就像你熟悉的方法调用一样自然。

核心目标:快速集成Redis,实现缓存数据的增删查操作,提升轻量服务数据读写效率。

核心准备

  1. 环境:安装并启动Redis(Windows下载Redis-x64包,Linux执行apt install redis-server);
  2. 安装NuGet包:
    Install-Package PicoServer
    Install-Package StackExchange.Redis

C# 极简代码示例

using PicoServer;
using StackExchange.Redis;
using System;

class Program
{
    static void Main(string[] args)
    {
        // 1. 初始化Redis连接(本地默认配置)
        var redisConn = ConnectionMultiplexer.Connect("localhost:6379");
        Console.WriteLine("Redis连接成功");

        // 2. 启动PicoServer
        var MyAPI = new WebAPIServer();
        MyAPI.StartServer();
        Console.WriteLine("PicoServer启动成功,地址:http://localhost:8090");

        // 3. 注册路由(操作Redis)
        // 写入缓存
        MyAPI.AddRoute("/set", () => 
        {
            var db = redisConn.GetDatabase();
            db.StringSet("demo:name", "PicoServer-Redis", TimeSpan.FromMinutes(10));
            return """{"code":1,"msg":"缓存写入成功"}""";
        }, "GET");

        // 读取缓存
        MyAPI.AddRoute("/get", () => 
        {
            var db = redisConn.GetDatabase();
            string value = db.StringGet("demo:name");
            return string.IsNullOrEmpty(value) 
                ? """{"code":0,"msg":"缓存不存在"}""" 
                : $"""{"code":1,"msg":"读取成功","data":"{value}"}""";
        }, "GET");

        Console.ReadKey();
        // 4. 释放资源
        MyAPI.StopServer();
        redisConn.Dispose();
    }
}

VB.NET 极简代码示例

Imports PicoServer
Imports StackExchange.Redis
Imports System

Module Program
    Sub Main(args As String())
        ' 1. 初始化Redis连接(本地默认配置)
        Dim redisConn = ConnectionMultiplexer.Connect("localhost:6379")
        Console.WriteLine("Redis连接成功")

        ' 2. 启动PicoServer
        Dim MyAPI = New WebAPIServer()
        MyAPI.StartServer()
        Console.WriteLine("PicoServer启动成功,地址:http://localhost:8090")

        ' 3. 注册路由(操作Redis)
        ' 写入缓存
        MyAPI.AddRoute("/set", Function()
                                 Dim db = redisConn.GetDatabase()
                                 db.StringSet("demo:name", "PicoServer-Redis", TimeSpan.FromMinutes(10))
                                 Return "{""code"":1,""msg"":""缓存写入成功""}"
                             End Function, "GET")

        ' 读取缓存
        MyAPI.AddRoute("/get", Function()
                                 Dim db = redisConn.GetDatabase()
                                 Dim value As String = db.StringGet("demo:name")
                                 Return If(String.IsNullOrEmpty(value), 
                                          "{""code"":0,""msg"":""缓存不存在""}", 
                                          $"{{""code"":1,""msg"":""读取成功"",""data"":""{value}""}}")
                             End Function, "GET")

        Console.ReadKey()
        ' 4. 释放资源
        MyAPI.StopServer()
        redisConn.Dispose()
    End Sub
End Module

复制

关键说明

  1. Redis有密码/非默认端口:连接字符串改为"localhost:6379,password=你的密码"
  2. 可扩展支持Hash、List等Redis数据类型(如C#:db.HashSet("user:1", "name", "张三"),VB.NET:db.HashSet("user:1", "name", "张三"));
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐