-
Notifications
You must be signed in to change notification settings - Fork 67
Home
Longwei Lai edited this page Dec 10, 2024
·
40 revisions
欢迎阅读llbc使用手册!
llbc(Low Level Base Component): 一套麻雀虽小,五脏具全的跨平台、多语言支持的服务器开发框架。
特点:
- 跨平台: 跨五个平台:
Windows
、Linux
、macosx
、iOS(理论支持,不再跟进编译跟测试)
、Android(理论支持,不再编译跟测试)
- 多语言支持:
c++
、python
、c#(部分支持)
、lua(部分支持)
- 简洁、高效、内聚:麻雀虽小, 但五脏具全, 简洁、高效、内聚
llbc不像skynet、log4cxx,在某一个领域提供一套解决方案,也不像jsoncpp、tinyxml,在某一个特定技术点上,提供一个类工具库让开发者解决点状问题,llbc:
- 提供一套麻雀虽小,但五脏具全的框架,让开发者以最小成本(学习成本、使用成本、集成成本)就能完成服务器底层搭建、功能开发
-
提供一套
app
->service
->component
范式,让服务器功能设计及实现以最优雅的方式落地,且近乎可无限扩展的能力
llbc框架非常贴近工程实践, 使用llbc框架, 可以解决开发服务器的几个实际痛点问题:
-
解决跨平台问题:llbc框架从设计到实现就是跨平台的,一旦使用,你将拥有完整的跨平台能力(而不是一个个
#ifdef/#endif
这样的离散代码), 且是三个主流平台 -
多语言支持问题:llbc库在
c++
、python
上的支持是完整的,这意味着你可以很容易将通过llbc框架开发的组件在不同语言中共用, 当前c#
跟lua
支持较为薄弱,后续会不断加强 - 大量三方库引入的导致的复杂问题:一个服务器功能的开发,开发者往往要引入大几十个甚至上百个三方库,这些库的融合、跨平台、互操作性都有各种各样的问题,且都是各自有一套设计,导致开发者需要花无数时间去处理这些问题,连最简单的版本跟进、升级、跨平台支持这些,都是一个大问题,而如果使用llbc框架,可以让你的服务器引入的三方库控制到五个或以下,因为使用llbc后,大部分功能就已经具备,而llbc框架天然又无任何依赖且精简,真正做到了三方库使用层面的简单
- 精简、易于上手及使用:llbc框架设计非常简洁、统一,每个方面都有足够的设计及实现考量,开发者将非常愿意使用llbc,也容易使用llbc,因为非常的简洁跟统一
- 过多引入c++特性导致的复杂问题:llbc框架核心库使用c++编写,考虑到c++不断迭代引入的特性非常之多,而大部分其实从工程角度看没太多意义,反倒使工程代码复杂化(看代码不是看逻辑,而是在看语言复杂特性),llbc框架对每一个c++特性都持谨慎态度,以最小化使用c++特性的方式来进行框架的开发及升级,开发者应该会喜欢
- 三方库复杂、笨重、业务耦合重、对业务约束多的问题:llbc框架功能强大、但却简单、统一,易于上手及使用,对比于大部分三方库的笨重、复杂、难于使用,llbc都没有这些问题,这利益于10年+的框架功能提炼跟优化
llbc为大多数服务器开发者供了一整套:平台差异隔离(core/os
)、聚合支持及一个服务组织范式:
- 跨平台能力: 天然且全面的跨平台能力
- 高级的流对象:提供
LLBC_Stream
流对象,让工程使用中真正做到完美的序列化、反序列化 - Timer:定时器支持,且是框架整合的方式统一提供支持
- 配置&配置读取:
Ini
、Properties
、Xml
、Json
、...
这些配置格式读写支持,且大部分都为llbc源生实现,统一及高效 - 平台无关的dll/so支持:提供平台无关的dll操作支持:
LLBC_Library
- 时间/时间跨度支持:提供标准的
LLBC_Time
、LLBC_TimeSpan
来进行时间、时间跨度的抽象及运算 - 真正的Variant:提供
LLBC_Variant
强大的易变对象,让业务逻辑编写更为简单、直接、快捷 - 日志&日志库:提供标准化、高性能的日志库,让业务可灵活进行日志器定义、输出格式定义及其它所有复杂的日志操作
- 对象池:一套极其简洁、灵活、高效的对象池实现
- 文件/目录操作:提供标准的文件目录操作,且api设计上向
python
靠齐 - 文字编码转换支持:通过
LLBC_Transcoder
对文字编码转换提供支持 - 调试、诊断支持:提供
LLBC_Stopwatch
这类调试、诊断支持 - 事件&事件管理:提供一套完整的事件系统,让业务开发中可直接使用,依托到
LLBC_Variant
,事件管理代码实现极为简洁 - 网络:跨平台网络框架内置于llbc框架中,已适配
iocp
、epoll
、select
模型 - 多线程&Task:提供一套完整线程管理支持(包括复杂的线程组),同时提供Job封装:
LLBC_Task
-
提供一套
App->Service->Component
范式的实现,让业务直接做到功能解耦及组织 - 错误&错误处理:真正做到将:操作系统api、c库、gai库、socket库、...等等这些不同api库的状态码进行统一,让业务无需关注这些错误细节
- 其它支持:MD5、Base64、 ...