源码分析引擎 Glean
-
Glean 是一个用于收集、推导和查询有关源代码信息的系统。它旨在收集和存储有关代码结构的详细信息,并提供对数据的访问,以提供从在线 IDE 功能到离线代码分析的强大工具和体验。
此项目可以用于:收集和存储有关代码结构的详细信息。Glean 是围绕高效的存储模型设计的,该模型可以大规模存储有关代码的信息。查询有关代码的信息,为从在线 IDE 功能到离线代码分析的工具和体验提供支持。
Glean 由以下组件组成:一个建立在 RocksDB 上的高效存储后端,用于存储事实。事实是由用户定义的模式描述的不可变的术语,并形成一个DAG。事实是由存储后端自动去重的。可以把它看作是能够有效地存储和查询你的代码的AST,并且具有完全的类型安全。
实现声明式查询语言 Angle 的查询引擎。Angle 是一种与 Datalog 相似的逻辑语言,但具有扩展功能,使其适用于构建对 Glean data 复杂查询。就像在 Datalog 中一样,Glean 可以通过使用 Angle定义规则来自动推导出新的事实。
一个服务器管理的磁盘多个数据库,并提供从客户创造,写和查询数据库的请求。该服务器目前使用 Thrift,但没有理由将来服务器也不能公开其他协议。该服务器旨在大规模部署,为大量客户端提供复制的数据库。
一个交互式 shell,你可以在其中键入查询并浏览数据。用于直接或通过连接到服务器来创建、编写和查询数据库的命令行工具。
常见编程语言的几个示例模式,以及 其中一些的索引器。请注意,Glean 不会强制将所有数据放入一个单一模式中;每种语言的模式中可以有任意数量的特定于语言的细节。可以通过使用 Angle 派生事实来构建语言中立的抽象。
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏