diff --git a/.github/workflows/mkdocs.yml b/.github/workflows/mkdocs.yml index b6aee250d..0e6d6ab7a 100644 --- a/.github/workflows/mkdocs.yml +++ b/.github/workflows/mkdocs.yml @@ -15,55 +15,9 @@ jobs: with: fetch-depth: '0' - - name: Checkout tutorial repo - uses: actions/checkout@v3 - with: - repository: ${{ github.repository_owner }}/bpf-developer-tutorial - ref: main - path: tutorial - - - name: Checkout main repository eunomia-bpf - uses: actions/checkout@v3 - with: - repository: ${{ github.repository_owner }}/eunomia-bpf - ref: master - path: eunomia-bpf - - - name: Checkout main repository GPTtrace - uses: actions/checkout@v3 - with: - repository: ${{ github.repository_owner }}/GPTtrace - ref: main - path: GPTtrace - - - name: Checkout main repository bpftime - uses: actions/checkout@v3 - with: - repository: ${{ github.repository_owner }}/bpftime - ref: master - path: bpftime - - - name: Checkout main repository llvmbpf - uses: actions/checkout@v3 - with: - repository: ${{ github.repository_owner }}/llvmbpf - ref: main - path: llvmbpf - - - name: Change suffix and merge - run: | - ./rename.sh - - - uses: actions/setup-python@v4 - with: - python-version: 3.x - - - name: Install dependents + - name: Install all run: | - pip install mkdocs-material=="9.*" mkdocs-static-i18n=="0.53" - pip install "mkdocs-material[imaging]" - pip install mkdocs-git-revision-date-localized-plugin - pip install mkdocs-git-authors-plugin + make install - name: Build page if: github.event_name == 'pull_request' @@ -76,4 +30,4 @@ jobs: github.event_name == 'push' || github.event_name == 'workflow_dispatch' run: | - mkdocs gh-deploy -m "{sha}" --force --ignore-version --no-history + mkdocs gh-deploy -m "{sha}" diff --git a/Makefile b/Makefile index e03dc5ea2..86bedce72 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,13 @@ -.PHONY: build clean -build: docs/CNAME +.PHONY: build clean install + +build: install + mkdocs build + +install: docs/CNAME pip install mkdocs-material=="9.*" mkdocs-static-i18n=="0.53" pip install "mkdocs-material[imaging]" pip install mkdocs-git-revision-date-localized-plugin pip install mkdocs-git-authors-plugin - mkdocs build tutorial: git clone https://github.com/eunomia-bpf/bpf-developer-tutorial tutorial --depth=1 diff --git a/docs/bpftime/index.md b/docs/bpftime/index.md index 173a2a304..5d8e68477 100644 --- a/docs/bpftime/index.md +++ b/docs/bpftime/index.md @@ -6,8 +6,6 @@ `bpftime` is a High-Performance userspace eBPF runtime and General Extension Framework designed for userspace. It enables faster Uprobe, USDT, Syscall hooks, XDP, and more event sources by bypassing the kernel and utilizing an optimized compiler like `LLVM`. -> ⚠️ **Note**: `bpftime` is actively under development, and it's not yet recommended for production use now. See our [roadmap](#roadmap) for details. We'd love to hear your feedback and suggestions! Please feel free to open an issue or [Contact us](#contact-and-citations). - 📦 [Key Features](#key-features) \ 🔨 [Quick Start](#quick-start) \ 🔌 [Examples & Use Cases](#examples--use-cases) \ @@ -19,6 +17,8 @@ bpftime is not `userspace eBPF VM`, it's a userspace runtime framework includes everything to run eBPF in userspace: `loader`, `verifier`, `helpers`, `maps`, `ufunc` and multiple `events` such as Observability, Network, Policy or Access Control. It has multiple VM backend options support. For eBPF VM only, please see [llvmbpf](https://github.com/eunomia-bpf/llvmbpf). +> ⚠️ **Note**: `bpftime` is currently under active development and may contain bugs or unstable API. Please use it with caution. For more details, check our [roadmap](#roadmap). We'd love to hear your feedback and suggestions! Feel free to open an issue or [Contact us](#contact-and-citations). + ## Why bpftime? What's the design Goal? - **Performance Gains**: Achieve better performance by `bypassing the kernel` (e.g., via `Userspace DBI` or `Network Drivers`), with more configurable, optimized and more arch supported JIT/AOT options like `LLVM`, while maintaining compatibility with Linux kernel eBPF. @@ -120,8 +120,8 @@ Examples including: - [opensnoop](https://github.com/eunomia-bpf/bpftime/tree/master/example/opensnoop) for trace file open syscalls. - More [bcc/libbpf-tools](https://github.com/eunomia-bpf/bpftime/tree/master/example/libbpf-tools). - Run with [bpftrace](https://github.com/eunomia-bpf/bpftime/tree/master/example/bpftrace) commands or scripts. -- [error injection](https://github.com/eunomia-bpf/bpftime/tree/master/example/error-injection): change function behavior with `bpf_override_return`. -- Use the eBPF LLVM JIT/AOT vm as [a standalone library](https://github.com/eunomia-bpf/bpftime/tree/master/vm/llvm-jit/example). +- [error injection](https://github.com/eunomia-bpf/bpftime/tree/master/example/error-inject): change function behavior with `bpf_override_return`. +- Use the eBPF LLVM JIT/AOT vm as [a standalone library](https://github.com/eunomia-bpf/llvmbpf/tree/main/example). - Userspace [XDP with DPDK and AF_XDP](https://github.com/userspace-xdp/userspace-xdp) ## In-Depth @@ -197,6 +197,7 @@ See [eunomia.dev/bpftime/documents/build-and-test](https://eunomia.dev/bpftime/d `bpftime` is continuously evolving with more features in the pipeline: - [ ] Keep compatibility with the evolving kernel +- [ ] Refactor for General Extension Framework - [ ] Trying to refactor, bug fixing for `Production`. - [ ] More examples and usecases: - [X] Userspace Network Driver on userspace eBPF