登录 注册
其他
571
Stars
—
Forks
0
Watchers
—
Open Issues
待补全
许可证
Elixir
语言
—
创建时间
最近更新

项目能做什么

专为 Elixir 项目打造的图(Graph)数据结构库。
来源:AI 基于仓库事实生成 · 内容以仓库实际 README 为准

使用说明 查看原始 README 原仓库文档

中文使用说明暂未生成。下面保留原仓库 README 摘录,命令与配置均以原文为准。
原始 README 摘录(英文原文,节选前 3000 字符)
# libgraph

[![Main](https://github.com/bitwalker/libgraph/actions/workflows/elixir.yml/badge.svg?branch=main)](https://github.com/bitwalker/libgraph/actions/workflows/elixir.yml)
[![Hex.pm Version](http://img.shields.io/hexpm/v/libgraph.svg?style=flat)](https://hex.pm/packages/libgraph)

[Documentation](https://hexdocs.pm/libgraph)

## About

This library provides:

- An implementation of a graph datastructure, `Graph`, designed for both directed and undirected graphs. The API supports
  undirected graphs, but I'm still getting the tests updated to cover properties of undirected graphs.
- A priority queue implementation `PriorityQueue`, oriented towards graphs (it prioritizes lower integer values over high),
  it is the fastest priority queue I know of which allows arbitrary priorities, and is more or less at parity with
  `pqueue3` from [the pqueue library](https://github.com/okeuday/pqueue/), which supports priorities from 0 to 65535.
- An idiomatic Elixir API for creating, modifying, and querying its graph structure. Creating and modifying a graph
  can be done in a single pipeline, and all queries take a Graph as their first parameter (one of my complaints with `:digraph`
  is that there is some inconsistency with the API between `:digraph` and `:digraph_utils` for no apparent reason).
- Two "Reducer" implementations for mapping/reducing over a graph. I am trying to figure out the best way to make these
extendable and part of the API, so that you can drop in your own shortest path algorithms, etc - but I have yet to come up with an
approach that feels good on that front.
- A `Serializer` behaviour, for defining custom serialization of graphs, with a Graphviz DOT format serializer
  provided out of the box.

It is backed by a large suite of tests, including StreamData properties for the graph model. Its
API shares some similarity with `:digraph`, but diverges in favor of a more idiomatic Elixir interface. In
addition, over time I'm adding new functions to query the graph in ways not previously supported via `:digraph`,
and introducing support for classifying a graph as undirected if so desired, so that queries over such graphs
become easier.

If you are interested in reading more about how you can make use of `libgraph`, 
there is an [excellent blog post](https://medium.com/@tonyhammond/native-graph-data-in-elixir-8c0bb325d451) written by Tony Hammond
which is a very helpful walkthrough of the library and what can be built with it.

## Installation

If [available in Hex](https://hex.pm/docs/publish), the package can be installed
by adding `libgraph` to your list of dependencies in `mix.exs`:

```elixir
def deps do
  [{:libgraph, "~> 0.16.0"}]
end
```

## Vertex identity

By default, libgraph identifies vertices using a 32-bit hash. Hash collisions can
silently treat distinct vertices as one, including their incident edges. To identify
vertices by their exact values instead:

```elixir
graph = Graph.new(vertex_identifier: fn vertex -> vertex e
阅读完整原文

项目深度分析 AI 生成

基于 Elixir 的企业级 DAG 工作流调度引擎

产品构想利用 libgraph 作为底层图依赖分析与拓扑排序核心,封装一套支持分布式任务编排、失败重试、条件分支的生产级 DAG 工作流库或轻量管理系统。
核心功能DAG 图合法性校验(环检测)、基于优先队列的任务并发调度、动态参数传递、可视化仪表盘(集成 Mermaid/DOT 渲染)、任务状态持久化插件。
目标用户使用 Elixir/Phoenix 的中后台工程团队、数据管道运维工程师(推测)。
难度/周期高 · 2-4 个月 · 成本:极低(主要是个人全栈开发时间,测试依赖标准 BEAM 运行环境)
收费模式核心开源 + 商业版(高级调度器、分布式容灾、企业级 SSO 及监控面板)。
竞争风险Elixir 生态相对垂直且小众,已有 Oban 等成熟后台任务框架主导市场,需要找到强依赖图拓扑编排的差异化场景。
依据 已验证事实

BEAM 生态架构与依赖关系可视化分析 SaaS

产品构想开发针对 Elixir/Erlang 项目的静态代码与运行时依赖分析工具,将模块调用、GenServer 链路建模为 libgraph 实例,并提供架构漂移检测与可视化报告服务。
核心功能Mix 依赖及代码 AST 依赖提取、循环依赖与耦合度告警、架构违规检测 CI 工具、交互式图谱浏览器。
目标用户Elixir 团队技术负责人、架构师、安全与审计人员(推测)。
难度/周期中等 · 1-2 个月 · 成本:低(基础云主机、前端渲染库)
收费模式SaaS 订阅制(按仓库数或团队席位收费)、CI/CD 插件付费授权。
竞争风险小众语言市场天花板低,许多团队可通过免费开源工具(如 xref、mix xref)自行解决基础分析。
依据 AI推测

基于图模型的动态权限策略评估组件(ReBAC 引擎)

产品构想基于 libgraph 的图遍历和路径查找算法,构建针对 Elixir/Phoenix 应用的内存级关系权限控制引擎(类似 Google Zanzibar 模式的轻量级实现)。
核心功能图结构主体-资源关系建模、超低延迟最短路径/可达性鉴权查询、动态关系边变更通知、Ecto 数据集装载扩展包。
目标用户开发复杂企业级 B2B SaaS、多租户系统的 Elixir 开发者(推测)。
难度/周期中等 · 1-3 个月 · 成本:低
收费模式双重许可协议(针对商业闭源项目收取授权费)或提供云端托管权限计算 API。
竞争风险市场对通用图权限库认知度参差不齐,纯内存方案在多节点水平扩展时的一致性维护复杂度高。
依据 尚需验证的假设
AI 基于仓库公开数据分析生成,含推测成分,不构成收益承诺。
报告会保存到 个人中心

竞品与相似项目 GitHub Search 真实检索

相似项目数据正在完善中,暂不展示(避免误导)

项目优势与风险

技术成熟度创建时间待补全,最近推送 ,发布过 1 个 Release
社区活跃Star 571 / Fork 0 / Issue 0(数据支持,可自行核实)
许可证未检测到(需人工确认)
主要风险上游项目方向可能变化;同赛道竞争者较多(见竞品表);热度与需求不完全等价

安装与使用

此项目未提供 Docker 镜像,安装步骤以原仓库 README 为准(涉及依赖安装与环境配置,对新手门槛较高)。