Avalonia项目深度解析:跨平台.NET UI框架的架构设计
Avalonia是一个开源的、跨平台的.NET UI框架,使用XAML作为界面描述语言,为开发者提供了构建桌面、移动和WebAssembly应用程序的统一解决方案。作为WPF的精神继承者,Avalonia在保持熟悉的开发体验的同时实现了真正的跨平台支持。本文将从项目历史背景、核心架构设计、多平台支持机制、模块化组织结构等多个维度进行深度解析,揭示其作为现代化跨平台UI框架的技术实现原理和架构设计理念。
Avalonia项目概述与历史背景
Avalonia是一个开源的、跨平台的.NET UI框架,它使用XAML作为界面描述语言,为开发者提供了构建桌面、移动和WebAssembly应用程序的统一解决方案。作为WPF(Windows Presentation Foundation)的精神继承者,Avalonia在保持熟悉的开发体验的同时,实现了真正的跨平台支持。
项目起源与发展历程
Avalonia项目最初由Steven Kirk于2013年12月5日创建,最初命名为Perspex。项目的核心理念是构建一个受WPF启发的跨平台UI框架,填补.NET生态系统中跨平台UI开发的空白。
timeline
title Avalonia发展历程
section 2013年
12月5日 : 项目创建<br>最初命名为Perspex
section 2014-2019年
社区驱动开发 : 逐步完善核心功能<br>支持多种平台
section 2020年
4月1日 : 加入.NET基金会
section 2024年
2月20日 : 退出.NET基金会<br>回归核心团队管理
section 2025年
6月24日 : 获得Devolutions<br>300万美元赞助
技术定位与设计理念
Avalonia采用了与Flutter相似的渲染架构,完全自主绘制整个用户界面,不依赖原生控件系统。这种设计带来了几个关键优势:
- 一致的跨平台体验:在所有平台上提供完全相同的视觉和行为表现
- 高度的可定制性:支持深度样式定制和主题系统
- 性能优化:通过Skia和Direct2D等高性能渲染后端实现流畅体验
核心特性与技术栈
Avalonia的技术架构建立在现代.NET技术栈之上:
| 技术组件 | 描述 | 优势 |
|---|---|---|
| XAML | 声明式UI描述语言 | 与WPF/UWP开发体验一致 |
| MVVM模式 | Model-View-ViewModel架构 | 良好的可测试性和可维护性 |
| Skia渲染 | 跨平台2D图形库 | 高性能、一致的渲染效果 |
| .NET多目标 | 支持.NET 6+和.NET Framework | 广泛的兼容性 |
平台支持矩阵
Avalonia支持广泛的平台生态系统:
mindmap
root(Avalonia平台支持)
(桌面平台)
Windows
macOS
Linux
(Ubuntu)
(Fedora)
(Debian)
(移动平台)
iOS
Android
(Web平台)
WebAssembly
(Blazor)
(嵌入式)
Raspberry Pi
IoT设备
社区生态与商业发展
Avalonia的发展模式体现了开源项目的成功典范。项目最初完全由社区驱动,随着影响力的扩大,于2019年底成立了AvaloniaUI OÜ公司来提供商业支持和专业服务。这种"社区+商业"的双轨模式确保了项目的可持续发展和专业支持。
项目在2025年6月获得了Devolutions的300万美元赞助,这笔资金将用于继续推动框架的发展,同时保持其免费和开源的本质。这一赞助关系体现了企业界对Avalonia技术价值和商业潜力的认可。
版本演进与里程碑
Avalonia的版本发布遵循语义化版本控制,主要版本号反映了重大的架构改进和功能增强。从最初的0.x版本到当前的11.x版本,框架在稳定性、性能和功能丰富度方面都取得了显著进步。
项目的开源治理模式也经历了演变,从最初的个人主导到社区协作,再到加入.NET基金会,最终回归核心团队管理。这种治理模式的调整反映了项目规模的增长和商业化需求的平衡。
Avalonia的成功不仅在于其技术创新,更在于它成功地将WPF的开发理念和模式带到了跨平台领域,为.NET开发者提供了熟悉且强大的工具链,极大地降低了跨平台应用开发的学习成本和迁移难度。
核心架构:Avalonia.Base模块解析
Avalonia.Base模块是整个Avalonia UI框架的基石,它提供了跨平台UI开发所需的核心基础设施。这个模块包含了属性系统、数据绑定、视觉树管理、输入处理、样式系统等关键组件,为上层控件和应用程序提供了强大的基础支持。
属性系统架构
Avalonia.Base的核心是其先进的属性系统,它借鉴了WPF的依赖属性概念,但进行了现代化改进和性能优化。属性系统采用分层架构设计:
classDiagram
class AvaloniaProperty {
+string Name
+Type PropertyType
+Type OwnerType
+bool Inherits
+bool IsAttached
+bool IsDirect
+bool IsReadOnly
+Register() StyledProperty
+RegisterAttached() StyledProperty
+RegisterDirect() DirectProperty
}
class StyledProperty~T~ {
+T DefaultValue
+BindingMode DefaultBindingMode
+Func~T, bool~ Validate
+Func~AvaloniaObject, T, T~ Coerce
}
class DirectProperty~T~ {
+Func~AvaloniaObject, T~ Getter
+Action~AvaloniaObject, T~ Setter
}
class AvaloniaObject {
+object this[AvaloniaProperty]
+GetValue(AvaloniaProperty) object
+SetValue(AvaloniaProperty, object)
+ClearValue(AvaloniaProperty)
+Bind(AvaloniaProperty, IBinding)
}
class ValueStore {
+List~ValueFrame~ Frames
+AddBinding(AvaloniaProperty, IBinding)
+SetValue(AvaloniaProperty, object, BindingPriority)
+GetValue(AvaloniaProperty) object
}
AvaloniaProperty <|-- StyledProperty
AvaloniaProperty <|-- DirectProperty
AvaloniaObject --> ValueStore
AvaloniaObject --> AvaloniaProperty
属性系统支持多种属性类型:
| 属性类型 | 特点 | 适用场景 |
|---|---|---|
| StyledProperty | 支持样式、模板、继承、动画 | 大多数控件属性 |
| DirectProperty | 高性能,无存储开销 | 频繁访问的简单属性 |
| AttachedProperty | 可附加到其他对象 | 布局、行为相关的属性 |
数据绑定引擎
Avalonia.Base的数据绑定系统采用了响应式编程模式,提供了强大的数据流处理能力。绑定系统基于表达式树和观察者模式构建:
// 绑定表达式核心实现
public class BindingExpression : UntypedBindingExpressionBase
{
private readonly List<ExpressionNode> _nodes;
private readonly BindingMode _mode;
// 表达式节点处理数据流
internal void OnNodeValueChanged(int nodeIndex, object? value, Exception? error)
{
// 处理数据验证和转换
if (nodeIndex == _nodes.Count - 1)
{
ConvertAndPublishValue(value, error);
}
}
}
绑定系统支持多种数据源和转换机制:
flowchart TD
A[数据源] --> B[表达式节点链]
B --> C[值转换器]
C --> D[数据验证]
D --> E[目标属性]
subgraph 表达式节点类型
F[PropertyAccessorNode]
G[IndexerNode]
H[MethodNode]
I[TypeCastNode]
end
B --> F
B --> G
B --> H
B --> I
视觉树管理系统
Visual类是Avalonia UI渲染系统的核心,它管理控件的视觉层次结构和渲染状态:
public partial class Visual : StyledElement, IAvaloniaListItemValidator<Visual>
{
// 视觉属性定义
public static readonly StyledProperty<bool> ClipToBoundsProperty;
public static readonly StyledProperty<double> OpacityProperty;
public static readonly StyledProperty<IBrush?> OpacityMaskProperty;
public static readonly StyledProperty<ITransform?> RenderTransformProperty;
// 视觉子元素管理
private AvaloniaList<Visual> VisualChildren { get; }
// 渲染相关方法
protected virtual void Render(DrawingContext context) { }
internal void InvalidateVisual() { }
}
视觉树采用组合模式设计,支持复杂的层次结构:
graph TB
Root[根Visual] --> Child1[子Visual 1]
Root --> Child2[子Visual 2]
Child2 --> GrandChild1[孙子Visual 1]
Child2 --> GrandChild2[孙子Visual 2]
style Root fill:#e1f5fe
style Child1 fill:#fff3e0
style Child2 fill:#f3e5f5
style GrandChild1 fill:#e8f5e8
style GrandChild2 fill:#ffebee
输入处理系统
Avalonia.Base提供了统一的输入处理抽象,支持多种输入设备:
| 输入类型 | 处理类 | 主要功能 |
|---|---|---|
| 鼠标输入 | MouseDevice | 指针移动、点击、滚轮 |
| 触摸输入 | TouchDevice | 多点触控、手势识别 |
| 键盘输入 | KeyboardDevice | 按键事件、输入法 |
| 拖放操作 | DragDrop | 拖放数据传输 |
输入系统采用事件路由机制:
public class InputElement : StyledElement, IInputElement
{
// 输入事件定义
public static readonly RoutedEvent<PointerEventArgs> PointerPressedEvent;
public static readonly RoutedEvent<KeyEventArgs> KeyDownEvent;
// 事件路由处理
protected virtual void OnPointerPressed(PointerPressedEventArgs e)
{
// 基类处理
base.OnPointerPressed(e);
// 冒泡路由
if (!e.Handled)
RaiseEvent(e);
}
}
样式和模板系统
Avalonia.Base的样式系统支持选择器、触发器、资源字典等高级特性:
public class Styles : AvaloniaObject, IResourceHost, IStyle
{
private readonly List<IStyle> _styles = new();
private IResourceHost? _owner;
// 样式应用
public SelectorMatchResult TryAttach(IStyleable target, IStyleHost? host)
{
foreach (var style in _styles)
{
var result = style.TryAttach(target, host);
if (result != SelectorMatchResult.NeverThisType)
return result;
}
return SelectorMatchResult.NeverThisType;
}
}
样式选择器支持多种匹配模式:
| 选择器类型 | 语法示例 | 描述 |
|---|---|---|
| 类型选择器 | Button | 匹配指定类型控件 |
| 类选择器 | .primary | 匹配具有指定样式的控件 |
| 属性选择器 | [IsEnabled=true] | 匹配属性满足条件的控件 |
| 伪类选择器 | :pointerover | 匹配特定状态的控件 |
动画系统架构
Avalonia.Base提供了强大的动画框架,支持属性动画、关键帧动画和过渡效果:
public class Animatable : AvaloniaObject
{
// 动画管理
private Dictionary<AvaloniaProperty, IAnimation>? _animations;
public IDisposable BeginAnimation(
AvaloniaProperty property,
IAnimation? animation)
{
// 创建动画实例并启动
var instance = animation?.CreateInstance(this, property);
return ApplyAnimation(property, instance);
}
}
动画系统采用时间线驱动模型:
sequenceDiagram
participant A as Animatable
participant C as Clock
participant E as AnimationEngine
A->>C: 注册动画
C->>E: 启动时间线
loop 每帧更新
E->>C: 推进时间
C->>A: 更新属性值
end
E->>C: 动画完成
C->>A: 清理动画状态
线程和调度模型
Avalonia.Base实现了高效的线程调度机制,确保UI操作在正确的线程上执行:
public static class Dispatcher
{
public static Dispatcher UIThread { get; }
public bool CheckAccess() { }
public void VerifyAccess() { }
public void Post(Action action, DispatcherPriority priority) { }
}
// 在AvaloniaObject中强制线程检查
public class AvaloniaObject
{
public void VerifyAccess() => Dispatcher.UIThread.VerifyAccess();
public object? GetValue(AvaloniaProperty property)
{
VerifyAccess(); // 确保在UI线程
// ... 属性获取逻辑
}
}
性能优化策略
Avalonia.Base模块采用了多种性能优化技术:
- 值存储优化:使用高效的ValueStore管理属性值,减少内存分配
- 绑定表达式缓存:缓存解析后的绑定表达式,提高重复绑定性能
- 视觉树遍历优化:使用高效算法进行视觉树遍历和命中测试
- 事件路由优化:采用冒泡和隧道路由,减少不必要的事件处理
扩展性和可定制性
Avalonia.Base设计了高度可扩展的架构:
- 插件系统:通过AvaloniaLocator实现服务定位和依赖注入
- 自定义渲染:支持自定义渲染器和渲染操作
- 输入处理扩展:可以注册自定义输入设备和手势识别器
- 动画扩展:支持自定义动画类型和缓动函数
这个模块的设计充分体现了现代UI框架的架构理念,为构建高性能、可扩展的跨平台应用程序提供了坚实的基础设施。
多平台支持机制与渲染后端
Avalonia作为真正的跨平台UI框架,其核心优势在于对多种操作系统和硬件平台的深度适配能力。框架通过抽象的平台接口和可插拔的渲染后端架构,实现了从桌面到移动设备、从x86到ARM处理器的全面覆盖。
平台抽象层架构
Avalonia的平台支持建立在精心设计的抽象层之上,通过IPlatformRenderInterface接口统一所有平台的渲染操作。这个接口定义了跨平台图形操作的标准契约:
public interface IPlatformRenderInterface
{
IPlatformRenderInterfaceContext CreateBackendContext(IPlatformGraphicsContext? graphicsContext);
IBitmapImpl CreateBitmap(PixelSize size, Vector dpi);
IWriteableBitmapImpl CreateWriteableBitmap(PixelSize size, Vector dpi);
IRenderTargetBitmapImpl CreateRenderTargetBitmap(PixelSize size, Vector dpi);
IPlatformRenderInterfaceRegion CreateRegion();
// ... 其他图形原语方法
}
每个平台通过实现这个接口来提供本地化的图形服务,形成了如下的平台适配架构:
flowchart TD
A[Avalonia应用程序] --> B[平台抽象层]
B --> C[Windows平台]
B --> D[macOS平台]
B --> E[Linux平台]
B --> F[Android平台]
B --> G[iOS平台]
C --> H[Win32/Native]
D --> I[Cocoa/Quartz]
E --> J[X11/Wayland]
F --> K[Android Surface]
G --> L[iOS CoreGraphics]
H --> M[Direct2D/Direct3D]
I --> N[Metal/OpenGL]
J --> O[OpenGL/Vulkan]
K --> P[OpenGL ES]
L --> Q[Metal]
渲染后端实现机制
Avalonia支持多种渲染后端,每种后端针对特定的硬件和性能需求进行优化:
Skia渲染后端
Skia是Avalonia的默认渲染后端,提供跨平台的2D图形渲染能力:
internal class PlatformRenderInterface : IPlatformRenderInterface
{
private readonly long? _maxResourceBytes;
public PlatformRenderInterface(long? maxResourceBytes = null)
{
_maxResourceBytes = maxResourceBytes;
}
public IPlatformRenderInterfaceContext CreateBackendContext(
IPlatformGraphicsContext? graphicsContext)
{
return new SkiaContext(graphicsContext, _maxResourceBytes);
}
public IRenderTarget CreateRenderTarget(IEnumerable<object> surfaces)
{
foreach (var surface in surfaces)
{
if (surface is ISkiaGpuRenderTarget skiaGpuRenderTarget)
return new SkiaGpuRenderTarget(skiaGpuRenderTarget);
if (surface is ISurface surfaceImpl)
return new SurfaceRenderTarget(surfaceImpl);
}
throw new ArgumentException("No supported surface type found");
}
}
硬件加速后端对比
Avalonia支持多种硬件加速渲染技术,各具特色:
| 渲染后端 | 支持平台 | GPU加速 | API特性 | 适用场景 |
|---|---|---|---|---|
| Skia (软件) | 全平台 | ❌ | 纯CPU渲染 | 兼容性测试、低端设备 |
| Skia (OpenGL) | Windows/macOS/Linux | ✅ | OpenGL 3.0+ | 通用GPU加速 |
| Skia (Vulkan) | Windows/Linux | ✅ | Vulkan 1.0+ | 高性能图形应用 |
| Direct2D | Windows Only | ✅ | DirectX 11+ | Windows原生高性能 |
| Metal | macOS/iOS Only | ✅ | Metal API | Apple生态最佳性能 |
平台特定的初始化流程
每个平台都有专门的初始化逻辑,通过平台扩展方法配置:
// Windows平台初始化
public static AppBuilder UseWindows(this AppBuilder builder)
{
return builder.UseWindowingSubsystem(
() => WindowsPlatform.Initialize(builder), "Windows");
}
// macOS平台初始化
public static AppBuilder UseMacOS(this AppBuilder builder)
{
return builder.UseWindowingSubsystem(
() => AvaloniaNativePlatform.InitializeMacOS(builder), "MacOS");
}
// Linux平台初始化
public static AppBuilder UseX11(this AppBuilder builder)
{
return builder.UseWindowingSubsystem(
() => X11Platform.Initialize(builder), "X11");
}
渲染管线与合成器
Avalonia采用现代化的渲染管线架构,通过Compositor实现高效的视觉树合成:
sequenceDiagram
participant A as 应用程序
participant R as Renderer
participant C as Compositor
participant G as GPU后端
A->>R: 标记Visual为Dirty
R->>C: 请求重绘区域
C->>G: 生成绘制命令
G->>G: 执行GPU渲染
G-->>C: 渲染完成
C-->>R: 合成完成
R-->>A: 界面更新
多线程渲染架构
Avalonia的渲染系统采用多线程设计,确保UI响应性和渲染性能:
internal class DeferredRenderer : IRenderer, IRendererWithCompositor
{
private readonly Compositor _compositor;
private readonly IRenderLoop _renderLoop;
private readonly object _syncRoot = new object();
public void AddDirty(Visual visual)
{
lock (_syncRoot)
{
_dirtyVisuals.Add(visual);
_renderLoop.Invalidate(this);
}
}
public void Paint(Rect rect)
{
// 在渲染线程执行实际的绘制操作
_compositor.Render(_scene, rect);
}
}
平台特性适配表
不同平台在渲染特性上存在差异,Avalonia通过特性检测和回退机制确保一致性:
| 特性 | Windows | macOS | Linux | Android | iOS |
|---|---|---|---|---|---|
| 硬件加速 | ✅ Direct2D/Metal | ✅ Metal | ✅ OpenGL/Vulkan | ✅ OpenGL ES | ✅ Metal |
| 多显示器 | ✅ 完整支持 | ✅ 完整支持 | ✅ 大部分支持 | ❌ 有限支持 | ❌ 有限支持 |
| 高DPI | ✅ 完美支持 | ✅ 完美支持 | ✅ 良好支持 | ✅ 良好支持 | ✅ 完美支持 |
| 透明窗口 | ✅ Aero Glass | ✅ Vibrancy | ✅ ARGB Visual | ✅ Surface | ✅ Blur |
| 输入法 | ✅ IME支持 | ✅ IMK支持 | ✅ IBus支持 | ✅ Android IME | ✅ UIKit IME |
性能优化策略
Avalonia在多平台渲染中采用了多种性能优化技术:
- 脏矩形优化:只重绘发生变化的区域
- 纹理缓存:重复使用已渲染的纹理资源
- 命令批处理:合并多个绘制命令减少GPU调用
- 异步加载:资源异步加载避免界面卡顿
- 内存管理:智能的资源生命周期管理
这种多层次、多后端的架构设计使Avalonia能够在保持开发一致性的同时,充分发挥每个平台的硬件潜力,为开发者提供真正"一次编写,到处运行"的跨平台体验。
项目组织结构与模块划分
Avalonia项目采用了高度模块化的架构设计,通过清晰的目录结构和命名空间组织,实现了跨平台UI框架的核心功能。整个项目结构可以分为核心基础模块、平台特定实现、控件库、主题系统、工具链和示例应用等多个层次。
核心架构模块
Avalonia的核心架构建立在分层设计的基础上,主要包含以下关键模块:
| 模块名称 | 功能描述 | 核心组件 |
|---|---|---|
| Avalonia.Base | 基础类型和核心抽象 | AvaloniaObject、StyledElement、Visual、AvaloniaProperty |
| Avalonia.Controls | 控件库基础 | 所有内置控件的基类和接口定义 |
| Avalonia.Themes | 主题系统 | Fluent和Simple主题实现 |
| Avalonia.Skia | 渲染后端 | Skia图形渲染引擎集成 |
| Avalonia.Desktop | 桌面平台支持 | Windows、macOS、Linux桌面应用支持 |
源码目录结构分析
Avalonia的源码组织采用功能模块化的目录结构,每个主要功能模块都有独立的项目文件夹:
graph TD
A[src/] --> B[Avalonia.Base/]
A --> C[Avalonia.Controls/]
A --> D[Avalonia.Themes.Fluent/]
A --> E[Avalonia.Themes.Simple/]
A --> F[Avalonia.Skia/]
A --> G[Avalonia.Desktop/]
A --> H[Platform Specific/]
H --> H1[Windows/]
H --> H2[Android/]
H --> H3[iOS/]
H --> H4[Browser/]
H --> H5[Linux/]
H --> H6[Tizen/]
A --> I[Tools/]
I --> I1[Avalonia.Build.Tasks/]
I --> I2[Avalonia.DesignerSupport/]
I --> I3[Avalonia.Diagnostics/]
命名空间组织策略
Avalonia采用清晰的命名空间分层策略,确保代码的可维护性和扩展性:
// 核心命名空间结构
namespace Avalonia
{
namespace Controls // 控件相关
namespace Input // 输入处理
namespace Media // 媒体和图形
namespace Metadata // 元数据系统
namespace Platform // 平台特定实现
namespace Styling // 样式系统
namespace Threading // 线程处理
}
平台特定实现模块
Avalonia支持多种平台的运行时实现,每个平台都有专门的模块:
| 平台模块 | 目标平台 | 关键技术 |
|---|---|---|
| Avalonia.Win32 | Windows桌面 | Win32 API、DirectX |
| Avalonia.X11 | Linux桌面 | X Window System |
| Avalonia.Android | Android移动端 | Android NDK、Java互操作 |
| Avalonia.iOS | iOS移动端 | Xamarin.iOS、Objective-C互操作 |
| Avalonia.Browser | WebAssembly | Blazor、WebAssembly运行时 |
构建系统和工具链
Avalonia提供了完整的工具链支持,包括构建任务、设计时支持和诊断工具:
flowchart TD
A[MSBuild构建过程] --> B[Avalonia.Build.Tasks]
B --> C[XAML编译]
B --> D[资源嵌入]
B --> E[代码生成]
F[设计时支持] --> G[Avalonia.DesignerSupport]
G --> H[XAML预览器]
G --> I[设计时属性系统]
J[运行时诊断] --> K[Avalonia.Diagnostics]
K --> L[可视化树查看器]
K --> M[性能分析工具]
K --> N[热重载支持]
示例和测试结构
项目包含了丰富的示例应用程序和测试套件,用于演示框架功能和确保代码质量:
mindmap
root((samples/))
ControlCatalog
::: 控件展示应用
Desktop版本
Android版本
iOS版本
Browser版本
BindingDemo
::: 数据绑定示例
ReactiveUIDemo
::: ReactiveUI集成
RenderDemo
::: 渲染性能测试
Sandbox
::: 开发测试沙盒
模块依赖关系
Avalonia的模块之间存在清晰的依赖关系,确保了架构的稳定性和可扩展性:
flowchart LR
A[Avalonia.Base] --> B[Avalonia.Controls]
B --> C[Avalonia.Themes]
C --> D[Avalonia.Skia]
D --> E[Platform Modules]
F[Avalonia.Build.Tasks] -.-> A
G[Avalonia.Diagnostics] -.-> B
H[Avalonia.DesignerSupport] -.-> C
这种模块化的架构设计使得Avalonia能够灵活地支持多种平台和设备,同时保持代码的可维护性和扩展性。每个模块都有明确的职责边界,开发者可以根据需要选择性地引用特定模块,从而优化应用程序的大小和性能。
Avalonia项目通过精心设计的模块化架构和分层抽象,成功构建了一个真正跨平台的.NET UI框架。其核心优势体现在:基于Avalonia.Base的强大基础架构提供了先进的属性系统、数据绑定引擎和视觉树管理;通过平台抽象层和可插拔渲染后端实现了对Windows、macOS、Linux、Android、iOS等多平台的深度适配;清晰的模块划分和命名空间组织确保了代码的可维护性和扩展性。Avalonia不仅继承了WPF的开发理念,还通过现代化的架构设计和技术选型,为.NET开发者提供了高性能、一致性的跨平台开发体验,填补了.NET生态系统在跨平台UI开发领域的重要空白。
Kimi-K2.5Kimi K2.5 是一款开源的原生多模态智能体模型,它在 Kimi-K2-Base 的基础上,通过对约 15 万亿混合视觉和文本 tokens 进行持续预训练构建而成。该模型将视觉与语言理解、高级智能体能力、即时模式与思考模式,以及对话式与智能体范式无缝融合。Python00- QQwen3-Coder-Next2026年2月4日,正式发布的Qwen3-Coder-Next,一款专为编码智能体和本地开发场景设计的开源语言模型。Python00
xw-cli实现国产算力大模型零门槛部署,一键跑通 Qwen、GLM-4.7、Minimax-2.1、DeepSeek-OCR 等模型Go06
PaddleOCR-VL-1.5PaddleOCR-VL-1.5 是 PaddleOCR-VL 的新一代进阶模型,在 OmniDocBench v1.5 上实现了 94.5% 的全新 state-of-the-art 准确率。 为了严格评估模型在真实物理畸变下的鲁棒性——包括扫描伪影、倾斜、扭曲、屏幕拍摄和光照变化——我们提出了 Real5-OmniDocBench 基准测试集。实验结果表明,该增强模型在新构建的基准测试集上达到了 SOTA 性能。此外,我们通过整合印章识别和文本检测识别(text spotting)任务扩展了模型的能力,同时保持 0.9B 的超紧凑 VLM 规模,具备高效率特性。Python00
KuiklyUI基于KMP技术的高性能、全平台开发框架,具备统一代码库、极致易用性和动态灵活性。 Provide a high-performance, full-platform development framework with unified codebase, ultimate ease of use, and dynamic flexibility. 注意:本仓库为Github仓库镜像,PR或Issue请移步至Github发起,感谢支持!Kotlin08
VLOOKVLOOK™ 是优雅好用的 Typora/Markdown 主题包和增强插件。 VLOOK™ is an elegant and practical THEME PACKAGE × ENHANCEMENT PLUGIN for Typora/Markdown.Less00