Skip to content
Longwei Lai edited this page Dec 10, 2024 · 40 revisions

欢迎阅读llbc使用手册!

1. llbc是什么?

llbc(Low Level Base Component): 一套麻雀虽小,五脏具全跨平台多语言支持的服务器开发框架。

特点:

  • 跨平台: 跨五个平台:WindowsLinuxmacosxiOS(理论支持,不再跟进编译跟测试)Android(理论支持,不再编译跟测试)
  • 多语言支持:c++pythonc#(部分支持)lua(部分支持)
  • 简洁、高效、内聚:麻雀虽小, 但五脏具全, 简洁、高效、内聚

llbc不像skynetlog4cxx,在某一个领域提供一套解决方案,也不像jsoncpptinyxml,在某一个特定技术点上,提供一个类工具库让开发者解决点状问题,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年+的框架功能提炼跟优化

2. llbc提供了什么?

llbc为大多数服务器开发者供了一整套:平台差异隔离(core/os)、聚合支持及一个服务组织范式:

  1. 跨平台能力: 天然且全面的跨平台能力
  2. 高级的流对象:提供LLBC_Stream流对象,让工程使用中真正做到完美的序列化、反序列化
  3. Timer:定时器支持,且是框架整合的方式统一提供支持
  4. 配置&配置读取:IniPropertiesXmlJson...这些配置格式读写支持,且大部分都为llbc源生实现,统一及高效
  5. 平台无关的dll/so支持:提供平台无关的dll操作支持: LLBC_Library
  6. 时间/时间跨度支持:提供标准的LLBC_TimeLLBC_TimeSpan来进行时间、时间跨度的抽象及运算
  7. 真正的Variant:提供LLBC_Variant强大的易变对象,让业务逻辑编写更为简单、直接、快捷
  8. 日志&日志库:提供标准化、高性能的日志库,让业务可灵活进行日志器定义、输出格式定义及其它所有复杂的日志操作
  9. 对象池:一套极其简洁、灵活、高效的对象池实现
  10. 文件/目录操作:提供标准的文件目录操作,且api设计上向python靠齐
  11. 文字编码转换支持:通过LLBC_Transcoder对文字编码转换提供支持
  12. 调试、诊断支持:提供LLBC_Stopwatch这类调试、诊断支持
  13. 事件&事件管理:提供一套完整的事件系统,让业务开发中可直接使用,依托到LLBC_Variant,事件管理代码实现极为简洁
  14. 网络:跨平台网络框架内置于llbc框架中,已适配iocpepollselect模型
  15. 多线程&Task:提供一套完整线程管理支持(包括复杂的线程组),同时提供Job封装:LLBC_Task
  16. 提供一套App->Service->Component范式的实现,让业务直接做到功能解耦及组织
  17. 错误&错误处理:真正做到将:操作系统api、c库、gai库、socket库、...等等这些不同api库的状态码进行统一,让业务无需关注这些错误细节
  18. 其它支持:MD5、Base64、 ...

3. 编译llbc

编译llbc

4. Quick Start

Quick Start

Clone this wiki locally