diff --git a/docs/awesome/awesome-ant-design.md b/docs/awesome/awesome-ant-design.md index 1c8a0239bf..a2dd97db9e 100644 --- a/docs/awesome/awesome-ant-design.md +++ b/docs/awesome/awesome-ant-design.md @@ -3,39 +3,39 @@ ---. ╭───╮╭──╮ ╭──╮ ╭──╮ ╭───╮ ╭──╮ ╭─── ───╮ ╭──╮ -.. \ / ││ │──│ │ / ╭─╯/ ╭──╯ / \ │ │ │ / ╭─╯ _|_|_ - │o ││ │ │ │ / ╰─( \─╮│ ││ ─ ─ │ / ╰─╮ / O \ - │ ││ │ │ │ ╭─╯\__ ││ O ││ \_/ ││ ╭─╯ \_______/ + │ o ││ │ │ │ / ╰─( \─╮│ ││ ─ ─ │ / ╰─╮ / O \ + │ ││ │ │ ││ ╭─╯\__ ││ O ││ \_/ ││ ╭─╯ \_______/ │ _ ││ ` ' ││ ╰─╮/ \ ││ ││ │ ││ ╰─╮ / \ │ │ │ \ / │ │\ │ \ / │ │ ││ │ \/ \ ╰──┴──╯ ╰──╯─╯ ╰─────╯ ╰───╯ ╰──╯ ╰───╯───╯╰─────╯ /'---'\ ____/ | \_____ ╭───╮╭───╮ ╭──────╮ ╭──╮ ╭──╮ ╭───╮╭────╮ ╭───╮╭───╮ __/\____/ \_ / ││ \ │ │ │ \ / ╭─╯/ ╭──╯╰╮ ╭╯ / ││ \ | \ - │ o ││ _ ││ │ \ / ╰─( \─╮ │ │ │ ╭──╯│ _ │ / \__ /\ '_ - │ ││ │ │╰─╯ ╰─╯ │ D ││ ╭─╯\__ │ │ │ │ │╭─╮│ │ │ / \__ \ \ + │ o ││ _ ││ │ │ \ / ╰─( \─╮ │ │ │ ╭──╯│ _ │ / \__ /\ '_ + │ ││ │ │╰─╯ ╰─╯ │ D ││ ╭─╯\__ │ │ │ │ │╭─╮│ │ │ / \__ \ \ │ _ ││ │ │ │ │ │ ││ ╰─╮/ \ │ │ │ │ ╰─ ││ │ │ \ \_\_________\ │ │ ││ │ │ │ │ │ ││ │\ │╭╯ ╰╮│ ││ │ │ \ \ \ ╰──┴──╯╰──┴──╯ ╰──╯ ╰─────╯╰─────╯ ╰───╯╰────╯╰─────╯╰──┴──╯ \ \ ``` -> 精选清单 [Ant Design](http://ant.design/) 资源和相关项目. 主要思想是每个人都可以在这里做出贡献,因此我们可以拥有一个关于 Ant Design 的中央信息库,我们会保持最新. +> A curated list of [Ant Design](http://ant.design/) resources and related projects. The main idea is that everyone can contribute here, so we can have a central repository of informations about Ant Design that we keep up-to-date. [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) [](https://ant.design/) -Ant Design是一种中间件设计语言,由蚂蚁金服体验技术部提炼,旨在统一中间件项目的用户界面规范,减少不必要的设计差异和实现成本,解放设计和前端开发资源. +Ant Design, a design language for middleware, is refined by Experience Technology Department of Ant Financial, aims to uniform the user interface specs for middleware projects, reduce the unnecessary cost of design differences and implementation and liberate the resources of design and front-end development. ## Resources -Ant Design 的官方项目和资源. +Official projects and resources of Ant Design. -- [Ant Design](http://ant.design/) - 企业级 UI 设计语言和基于 React 的实现. -- [Ant Design Pro](http://pro.ant.design/) - 用于企业应用程序的开箱即用的 UI 解决方案 :fire::fire::fire: -- [Ant Design Mobile](http://mobile.ant.design/) - 可配置的移动 UI 规范和基于 React 的实现. -- [Ant Design of React](http://react-component.github.io/badgeboard/) - 开箱即用的优雅 UI 组件,基于 React. -- [Ant Design SVG Icons](http://leungwensen.github.io/svg-icon/#ant) - 将常规图标字体转换为 SVG 格式的项目,支持 Ant Design 图标字体. +- [Ant Design](http://ant.design/) - An Enterprise-class UI design language and React-based implementation. +- [Ant Design Pro](http://pro.ant.design/) - An out-of-box UI solution for enterprise applications :fire::fire::fire: +- [Ant Design Mobile](http://mobile.ant.design/) - Configurable Mobile UI specification and React-based implementation. +- [Ant Design of React](http://react-component.github.io/badgeboard/) - Graceful UI components out of the box, based on React. +- [Ant Design SVG Icons](http://leungwensen.github.io/svg-icon/#ant) - Project to transform regular icon fonts into SVG format, supporting Ant Design icon fonts. ## Articles @@ -44,168 +44,171 @@ Ant Design 的官方项目和资源. ## Tools -这些是帮助使用 Ant Design 构建应用程序的工具和实用程序, +These are tools and utilities to help build apps using Ant Design, -- [Antd Init](https://github.com/ant-design/antd-init) - Ant Design 样板生成器(仅用于演示,使用 dva-cli). -- [Dva Cli](https://github.com/dvajs/dva-cli) - Create Ant Design projects based on [Dva.js](https://github.com/dvajs/dva), A - 基于 Redux 和 React 的轻量级前端框架,灵感来自 [Elm](http://elm-lang.org) 和 [Choo](https://github.com/yoshuawuyts/choo). -- [Antd Tools](https://github.com/ant-tool) - 非常有用的 Ant Design 工具列表,用于创建文档、创建新组件、构建工具等等. -- [Antd Tools Docs](http://ant-tool.github.io/) - Ant 工具的文档. -- [iConfig Ant Design](https://github.com/hutxs/iconfig-antd) - 通过一些有用的转换快速启动和运行新项目的样板. -- [vscode-antd-rush](https://github.com/fi3ework/vscode-antd-rush) - 在 VS Code 中快速使用 Ant Design +- [Antd Init](https://github.com/ant-design/antd-init) - Ant Design boilerplate generator (for demo only, use dva-cli). +- [Dva Cli](https://github.com/dvajs/dva-cli) - Create Ant Design projects based on [Dva.js](https://github.com/dvajs/dva), a + lightweight front-end framework based on Redux and React and inspired by [Elm](http://elm-lang.org) and [Choo](https://github.com/yoshuawuyts/choo). +- [Antd Tools](https://github.com/ant-tool) - Very useful list of tools for Ant Design to create documentation, create new components, build tools and many more. +- [Antd Tools Docs](http://ant-tool.github.io/) - Documentations for Ant Tools. +- [iConfig Ant Design](https://github.com/hutxs/iconfig-antd) - Boilerplate for quickly getting a new project up and running with a few useful transforms. +- [vscode-antd-rush](https://github.com/fi3ework/vscode-antd-rush) - Rush to Ant Design in VS Code - [Antd Snippets for VS Code](https://marketplace.visualstudio.com/items?itemName=bang.antd-snippets) -- [Generator Antd Pro](https://github.com/codetrial/generator-antd-pro) - 一种构建 Ant Design Pro 应用程序的简单方法. -- [formik-antd](https://github.com/jannikbuschke/formik-antd) - 流行的表单状态管理库 Formik 的声明性绑定. -- [Zaku](https://github.com/limichange/zaku) - 基于 JSX 的 UI 编辑器,构建页面和生成 antd 代码的简便方法. -- [Antd-Pro-Generator for VS Code](https://github.com/garrett12138/antd-pro-generator) 从 Ant Design Pro 的 Swagger2.0 或 OpenApi3.x 文档生成服务/模拟/模型. +- [Generator Antd Pro](https://github.com/codetrial/generator-antd-pro) - An easy way to build your Ant Design Pro application. +- [formik-antd](https://github.com/jannikbuschke/formik-antd) - Declarative bindings for the popular form state management library Formik. +- [Zaku](https://github.com/limichange/zaku) - JSX-based UI editor, easy way to build page and generate antd code. +- [Antd-Pro-Generator for VS Code](https://github.com/garrett12138/antd-pro-generator) Generate Service/Mock/Model from Swagger2.0 or OpenApi3.x docs for Ant Design Pro. +- [Ruyi Design Assistant](https://www.figma.com/community/plugin/1192146318523533547/) Ruyi Design Assistant helps you efficiently use React component libraries(AntDesign) and Design Tokens for design in Figma, and easily get production-level component code. ## Theming -这些实用程序可以帮助您自定义主题并能够在浏览器中更改它 +Here are utilities that can help you customize your theme and ability to change it in browser -- [antd-theme-webpack-plugin](https://github.com/mzohaibqc/antd-theme-webpack-plugin) - 用于生成自定义主题文件的 webpack 插件. -- [antd-theme-generator](https://github.com/mzohaibqc/antd-theme-generator) - 一个简单的脚本来生成主题特定的 less 文件,可以在任何环境中使用. -- [dynamic-antd-theme](https://github.com/luffyZh/dynamic-antd-theme) - 一个简单的动态更改 ant-design 主题的插件,无论是 less 还是 css. -- [storybook-addon-customize-antd-theme](https://github.com/letshare/storybook-addon-customize-antd-theme) - Storybook 插件可帮助您直观地自定义 ant 设计主题. +- [antd-theme-webpack-plugin](https://github.com/mzohaibqc/antd-theme-webpack-plugin) - A webpack plugin to generate your custom theme file. +- [antd-theme-generator](https://github.com/mzohaibqc/antd-theme-generator) - A simple script to generate theme specific less file which can be used in any environment. +- [dynamic-antd-theme](https://github.com/luffyZh/dynamic-antd-theme) - A simple plugin to dynamic change ant-design theme whether less or css. +- [storybook-addon-customize-antd-theme](https://github.com/letshare/storybook-addon-customize-antd-theme) - a Storybook addon help you visually customize an ant design theme. ### Themes -- [ant-design-dark-theme](https://github.com/ant-design/ant-design-dark-theme) - Ant Design 深色主题变量. -- [ant-design-aliyun-theme](https://github.com/ant-design/ant-design-aliyun-theme) - Ant Design 的阿里云控制台主题变量. -- [ant-dark-theme](https://github.com/Kuechlin/ant-dark-theme) - Ant Design 深色主题变量. +- [ant-design-dark-theme](https://github.com/ant-design/ant-design-dark-theme) - Dark theme variables of Ant Design. +- [ant-design-aliyun-theme](https://github.com/ant-design/ant-design-aliyun-theme) - Aliyun console theme variables of Ant Design. +- [ant-dark-theme](https://github.com/Kuechlin/ant-dark-theme) - Dark theme variables of Ant Design. ## Related Projects -Ant Design 系列项目. +Ant Design family of projects. -- [Grammar of Graphics](https://g2.alipay.com/) - 纯javascript,强大的大数据语义图生成工具,提供了一套图形语法,让用户用简单的语法构建出无数的图表,并集成了大量的统计工具,([Read more](https://github.com/antvis/feedback)). -- [Ant Visualization](https://antv.alipay.com/) - 专业的数据可视化规范,旨在将数年宝贵的数据模式组工作在探索数据可视化的过程中,分享给所有需要数据可视化理论的人. AntV由几部分组成,数据,设计规范和图表使用规则,([Read more](https://github.com/antvis/feedback)). -- [Ant Motion](http://motion.ant.design/) - 符合Ant Design Visual规范的高效动效设计方案,React实现. -- [Ant UX](http://ux.ant.design/) - 为 UX 设计制作站点地图模板 [Omnigraffle](https://www.omnigroup.com/omnigraffle), [Sketch](https://www.sketchapp.com/) 或者 [Axure](http://www.axure.com/) . 这是一个帮助设计师定义、改进和最终确定其产品的页面间逻辑的库. +- [Grammar of Graphics](https://g2.alipay.com/) - Pure javascript, powerful semantic graph generation tool for big data which provides a set of graphical syntax that lets users build with simple syntax a myriad of charts and integrates a large number of statistical tools, ([Read more](https://github.com/antvis/feedback)). +- [Ant Visualization](https://antv.alipay.com/) - Professional data visualization specification that aims to put several years of valuable data pattern group work in the process of exploring data visualization to share with all people who need data visualization theory. AntV consists of few parts, data, design specifications and rules for use of the chart, ([Read more](https://github.com/antvis/feedback)). +- [Ant Motion](http://motion.ant.design/) - Efficient motion design solutions that complies with Ant Design Visual specification with React implementation. +- [Ant UX](http://ux.ant.design/) - Make a sitemap template for UX design using [Omnigraffle](https://www.omnigroup.com/omnigraffle), [Sketch](https://www.sketchapp.com/) or [Axure](http://www.axure.com/). This is a library which assists designers to define, refine and finalize the inter-page logic of their products. ## Angular -使用 Angular 和 Ant Design 构建的项目. +Projects that are built with Angular and Ant Design. -- [NG-ZORRO](https://github.com/NG-ZORRO/ng-zorro-antd) - Angular 的 Ant 设计. -- [NG-ZORRO-Mobile](https://github.com/NG-ZORRO/ng-zorro-antd-mobile) - Angular Ant Design Mobile -- [ng-alain](https://ng-alain.com/) - ng-zorro-antd 管理面板前端框架. +- [NG-ZORRO](https://github.com/NG-ZORRO/ng-zorro-antd) - Ant Design of Angular. +- [NG-ZORRO-Mobile](https://github.com/NG-ZORRO/ng-zorro-antd-mobile) - Ant Design Mobile of Angular +- [ng-alain](https://ng-alain.com/) - ng-zorro-antd admin panel front-end framework. ## Vue.js -使用 Vue.js 和 Ant Design 构建的项目. +Projects that are built with Vue.js and Ant Design. -- [ant-design-vue](https://github.com/vueComponent/ant-design-vue) - Vue.js 2.5.0+ 的蚂蚁设计. -- [Vue.js Beauty](https://github.com/FE-Driver/vue-beauty) - 使用 Vue.js 和 Ant Design 构建的漂亮 UI 组件. -- [Vue.js Ant UI](https://github.com/kokoroX/vue-ant-ui) - 在 Vue.js 中构建的 Ant Design UI 组件. -- [Ant Design Vue](https://github.com/lileilei/Ant-design-vue) - Ant Design 的 Vue.js 版本. -- [antue](https://github.com/zzuu666/antue) - 一套企业级的Vue UI组件,完全遵循Ant Design规范. -- [vue-antd-admin](https://github.com/iczer/vue-antd-admin) - Ant Design Pro 与 Vue 的实现 +- [ant-design-vue](https://github.com/vueComponent/ant-design-vue) - Ant Design of Vue.js 2.5.0+. +- [Vue.js Beauty](https://github.com/FE-Driver/vue-beauty) - Beautiful UI components build with Vue.js and Ant Design. +- [Vue.js Ant UI](https://github.com/kokoroX/vue-ant-ui) - Ant Design UI components built in Vue.js. +- [Ant Design Vue](https://github.com/lileilei/Ant-design-vue) - Vue.js version of Ant Design. +- [antue](https://github.com/zzuu666/antue) - A set of enterprise-class Vue UI components, following the Ant Design specification completely. +- [vue-antd-admin](https://github.com/iczer/vue-antd-admin) - Ant Design Pro's implementation with Vue ## Blazor -使用 Blazor WebAssembly 和 Ant Design 构建的项目. +Projects that are built with Blazor WebAssembly and Ant Design. -- [ant-design-blazor](https://github.com/ElderJames/ant-design-blazor) - Blazor 的 Ant 设计(服务器端和 WebAssembly). -- [Blazorise](https://github.com/stsrki/Blazorise) - AntDesign 支持 Blazorise 和 Blazor [Demo](https://antdesigndemo.blazorise.com/) +- [ant-design-blazor](https://github.com/ElderJames/ant-design-blazor) - Ant Design of Blazor(both Server-side and WebAssembly). +- [Blazorise](https://github.com/stsrki/Blazorise) - AntDesign support for Blazorise and Blazor [Demo](https://antdesigndemo.blazorise.com/) ## Components -使用 Ant Design 构建的 UI 组件列表. +A list of UI components built with Ant Design. -- [antd-group-slider](https://github.com/huyennbl/antd-group-slider) - 一组滑块,可帮助输入具有多个范围和描述的数据. 在滑块之间同步数据以改善用户体验,避免在输入范围数据时意外丢失范围. -- [antd-table-infinity](https://github.com/Leonard-Li777/antd-table-infinity) - 基于antd table的无限滚动组件,支持虚拟滚动和高性能 -- [react-lz-editor](https://github.com/leejaen/react-lz-editor) - 基于draft-Js和ant design的开源rich react编辑器. -- [React Grid](https://github.com/kagawagao/react-grid) **[已弃用]** - 基于 Ant Design 的 Grid React UI 组件. -- [Antd Kit](https://github.com/huhulab/antd-kit) - 高级 Ant Design 组件. -- [antd-data-table](https://github.com/NewbeeFE/antd-data-table) - 结合antd的Table和Form进行数据的查找、展示、操作的组件. -- [ngx-recursive-form](https://github.com/hsbalar/ngx-recursive-form) - 基于使用 Ant Design 构建的 json 输入的 Angular 递归形式. -- [antd-amplify-react](https://github.com/mzohaibqc/antd-amplify-react) - 用于 Aws Amplify for Authentication 的 Ant Design 组件集合 -- [antd-password-input-strength](https://github.com/Kombustor/antd-password-input-strength) - 带有密码强度指示器的 AntD 输入组件. -- [antd-amiya](https://github.com/viewweiwu/amiya) - 页面级组件以及表格和表单. +- [antd-group-slider](https://github.com/huyennbl/antd-group-slider) - A group of sliders that help input data with multiple ranges & description. Have data sync between sliders to improve UX, avoid accidental missing range during inputing range data. +- [antd-table-infinity](https://github.com/Leonard-Li777/antd-table-infinity) - An infinite scroll component based on antd table that supports virtual scrolling & high-performance +- [react-lz-editor](https://github.com/leejaen/react-lz-editor) - An open source rich react editor based on draft-Js and ant design. +- [React Grid](https://github.com/kagawagao/react-grid) **[Deprecated]** - Grid React UI Component based on Ant Design. +- [Antd Kit](https://github.com/huhulab/antd-kit) - Advanced Ant Design components. +- [antd-data-table](https://github.com/NewbeeFE/antd-data-table) - A component that combines antd's Table and Form to do the search, display, and operating jobs for data. +- [ngx-recursive-form](https://github.com/hsbalar/ngx-recursive-form) - Angular recursive form based on json input built with Ant Design. +- [antd-amplify-react](https://github.com/mzohaibqc/antd-amplify-react) - A collection of Ant Design component for Aws Amplify for Authentication +- [antd-password-input-strength](https://github.com/Kombustor/antd-password-input-strength) - AntD Input component with password-strength indicator. +- [antd-amiya](https://github.com/viewweiwu/amiya) - Page level components and with table and form. +- [antd-phone-input](https://github.com/ArtyomVancyan/antd-phone-input) - Advanced, highly customizable phone input component for Ant Design. ## React Hooks -- [Sunflower(🌻)](https://github.com/ant-design/sunflower) antd 的 React Hooks 返回组件集合. +- [Sunflower(🌻)](https://github.com/ant-design/sunflower) Collection of React Hooks returning component of antd. ## Applications -使用 Ant Design 构建的成熟应用列表. +A list of mature apps built with Ant Design. -- [Eevee](https://github.com/pizn/eevee) - 基于Github page在线编辑博客平台. 该项目基于 React、Ant Design 和 GitHub API. -- [Productivity Application](https://github.com/dhruv-kumar-jha/productivity-frontend) - 看板风格,Trello 启发使用 React、Ant Design 和其他出色模块构建的生产力应用程序. +- [Eevee](https://github.com/pizn/eevee) - Based on Github page online editing blog platform. The project is based React, Ant Design and GitHub API. +- [Productivity Application](https://github.com/dhruv-kumar-jha/productivity-frontend) - Kanban style, Trello inspired Productivity application built using React, Ant Design and other fantastic modules. +- [IDURAR ERP/CRM](https://github.com/idurar/idurar-erp-crm) - IDURAR is Open Source ERP/CRM (Invoice / Inventory / Accounting / HR) Based on Mern Stack (Node.js / Express.js / MongoDb / React.js ) with Ant Design (AntD) and Redux ## Boilerplates -使用 Ant Design 构建的入门项目和样板列表. - -- [Ant Design Pro](http://pro.ant.design/) - 用于企业应用程序的开箱即用的 UI 解决方案 :fire::fire::fire: -- [Scaffold Market](http://scaffold.ant.design/) - 使用 Ant Design 的脚手架和样板 -- [Antd Admin](https://github.com/zuiidea/antd-admin) - 基于 Ant Design 和 Dva.js 构建的管理仪表板应用程序演示. -- [Meteor Antd Boilerplate](https://github.com/elmarti/meteor-antd-boilerplate) - 使用 Antd 和 Meteor 构建的基本社交网络. [Example](https://antdmeteor.herokuapp.com/login) -- [React SPA](https://github.com/JasonBai007/reactSPA) - 使用 React、Router、ES6、Fetch、Babel、Webpack、Npm、MockJs、FontAwesome、AnimateCSS、Ant Design、LESS 和 jQuery 构建 SPA. -- [React Admin](https://github.com/fireyy/react-antd-admin) - 基于 Ant Design 构建的 React Admin UI(用户名:admin,密码:123456). -- [React Redux](https://github.com/Justin-lu/react-redux-antd) - React Redux 用于使用 Ant Design 构建的 CMS/企业级应用程序 (ERP/Admin). -- [React Antd Starter](https://github.com/yuzhouisme/react-antd-redux-router-starter) - 该项目旨在使用 Ant Design 和 Redux 开发网站/网络应用程序. -- [Webbf](https://github.com/peterchenhdu/webbf) - 使用 Maven 与 Spring、Spring MVC 和 Mybatis 构建后端的 Java 演示. React、Reflux、Eebpack、jQuery、React-bootstrap 和 Ant Design. -- [React Redux Antd Starter](https://github.com/BetaRabbit/react-redux-antd-starter) - 使用 React、Redux 和 Ant Design 构建的前端样板. -- [Koa](https://github.com/yukrain/koa-antd-admin) - 使用 React、Ant Design 和 Koa 构建管理 UI 的示例应用程序. -- [Star Admin](https://github.com/pookpal/star-initReact-example) - 使用 React、Ant Design、Redux、React-router、Webpack 和 Babel 构建的演示应用程序. -- [React Redux Intro](https://github.com/LeuisKen/react-redux-intro) - 使用 Ant Design 构建的演示应用程序,可以配置为初始化 Redux 依赖项. -- [React Start Kit](https://github.com/jovey-zheng/react-start-kit) - 使用 React、Webpack、ES6+、Redux、Router、Babel、Express、Ant Design 构建的 SPA Boilerplate. -- [CL React](https://github.com/chenliang2016/CLReactAntDesign) - 基于Ant Design前端框架架构的企业后台软件. -- [TODO MVC](https://github.com/cupools/todoMVC-react) - 使用 React 和 Ant Design 构建的待办事项列表. -- [React Boilerplate](https://github.com/huhulab/react-frontend-boilerplate) - 使用 Ant Design 构建的 React Admin 前端样板. -- [Dva Antd Starter](https://github.com/xlsdg/dva-antd-starter) - 开始使用 Dva.js 和 Ant Design. -- [Dva Antd Mobile Starter](https://github.com/xlsdg/dva-antd-mobile-starter) - 开始使用 Dva.js 和 Ant Design 移动版. -- [Dva Ant Admin](https://github.com/jiangbo2015/learn-dva) - 使用 Dva、Ant-Design 构建的前端样板 -- [Aspnet Core Antd Boilerplate](https://github.com/bang88/aspnet-core-react-antd-boilerplate) - 使用 Asp.net 核心的服务器端渲染. -- [React Redux Universal](https://github.com/subenksaha/react-redux-universal) - 使用 React 路由器 4 和 webpack 2.5+ 的通用/同构样板. 所有最新的包. -- [CRA-TS-Antd](https://github.com/comerc/cra-ts-antd) - Create-React-App + TypeScript + Ant-Design(无弹出). -- [Ng-Alain](https://github.com/cipchk/ng-alain) - 基于 Ant Design(使用 ng-zorro-antd)构建的 Angular Admin UI. -- [Typescript React With Mobx Starter](https://github.com/YDJ-FE/ts-react-webpack) - 带有 typescript、react、mobx、antd 和 webpack 的入门模板). -- [React-PWA, PawJS and AntDesign](https://github.com/Atyantik/example-pawjs-ant-design) - 具有 SEO、PWA、SSR、Skeleton、Placeholders 等的可插入样板,作为其众多功能中的一部分. -- [Create React App + Ant Design](https://github.com/ant-design/create-react-app-antd) - 在不弹出的情况下在 create-react-app 中使用 antd -- [ScaffoldHub.io](https://scaffoldhub.io) - 使用 MongoDB、SQL 或 Firebase Firestore 生成全栈 React + Ant Design 应用程序. -- [The Green Meal](https://github.com/VincentCordobes/the-green-meal) - Next.js,用 TypeScript 编写的 PostgreSQL 演示应用程序. -- [react-vite-admin](https://github.com/ychengcloud/react-vite-admin) - React、Recoil、React Query、React Hooks、Typescript、Axios. +A list of starter projects and boilerplates built with Ant Design. + +- [Ant Design Pro](http://pro.ant.design/) - An out-of-box UI solution for enterprise applications :fire::fire::fire: +- [Scaffold Market](http://scaffold.ant.design/) - scaffolds and boilerplates using Ant Design +- [Antd Admin](https://github.com/zuiidea/antd-admin) - A admin dashboard application demo built upon Ant Design and Dva.js. +- [Meteor Antd Boilerplate](https://github.com/elmarti/meteor-antd-boilerplate) - A basic social network built using Antd and Meteor. [Example](https://antdmeteor.herokuapp.com/login) +- [React SPA](https://github.com/JasonBai007/reactSPA) - Building SPA with React, Router, ES6, Fetch, Babel, Webpack, Npm, MockJs, FontAwesome, AnimateCSS, Ant Design, LESS and jQuery. +- [React Admin](https://github.com/fireyy/react-antd-admin) - React Admin UI built on Ant Design (username: admin, password: 123456). +- [React Redux](https://github.com/Justin-lu/react-redux-antd) - React Redux for CMS/Enterprise class apps (ERP/Admin) built with Ant Design. +- [React Antd Starter](https://github.com/yuzhouisme/react-antd-redux-router-starter) - This project is designed to develop website/web apps using Ant Design and Redux. +- [Webbf](https://github.com/peterchenhdu/webbf) - Java demo that uses Maven to build the backend with Spring, Spring MVC and Mybatis. React, Reflux, Eebpack, jQuery, React-bootstrap and Ant Design. +- [React Redux Antd Starter](https://github.com/BetaRabbit/react-redux-antd-starter) - Front-end boilerplate built with React, Redux and Ant Design. +- [Koa](https://github.com/yukrain/koa-antd-admin) - Example app to build Admin UI built with React, Ant Design and Koa. +- [Star Admin](https://github.com/pookpal/star-initReact-example) - Demo app built with React, Ant Design, Redux, React-router, Webpack and Babel. +- [React Redux Intro](https://github.com/LeuisKen/react-redux-intro) - Demo app built with Ant Design and can be configured to initialize a Redux dependencies. +- [React Start Kit](https://github.com/jovey-zheng/react-start-kit) - SPA Boilerplate built with React, Webpack, ES6+, Redux, Router, Babel, Express, Ant Design. +- [CL React](https://github.com/chenliang2016/CLReactAntDesign) - Based on Ant Design front-end framework structures for enterprise back-office software. +- [TODO MVC](https://github.com/cupools/todoMVC-react) - Todo list built with React and Ant Design. +- [React Boilerplate](https://github.com/huhulab/react-frontend-boilerplate) - React Admin front-end boilerplate built with Ant Design. +- [Dva Antd Starter](https://github.com/xlsdg/dva-antd-starter) - Get started with Dva.js and Ant Design. +- [Dva Antd Mobile Starter](https://github.com/xlsdg/dva-antd-mobile-starter) - Get started with Dva.js and Ant Design mobile. +- [Dva Ant Admin](https://github.com/jiangbo2015/learn-dva) - A front-end boilerplate built with Dva, Ant-Design +- [Aspnet Core Antd Boilerplate](https://github.com/bang88/aspnet-core-react-antd-boilerplate) - Server Side Rendering with Asp.net core. +- [React Redux Universal](https://github.com/subenksaha/react-redux-universal) - Universal/Isomorphic boilerplate using react router 4 and webpack 2.5+. All latest packages. +- [CRA-TS-Antd](https://github.com/comerc/cra-ts-antd) - Create-React-App + TypeScript + Ant-Design (without Eject). +- [Ng-Alain](https://github.com/cipchk/ng-alain) - Angular Admin UI built on Ant Design (with ng-zorro-antd). +- [Typescript React With Mobx Starter](https://github.com/YDJ-FE/ts-react-webpack) - a starter-template with typescript, react, mobx, antd and webpack). +- [React-PWA, PawJS and AntDesign](https://github.com/Atyantik/example-pawjs-ant-design) - A pluggable boilerplate with SEO, PWA, SSR, Skeleton, Placeholders, etc. as some of its many features. +- [Create React App + Ant Design](https://github.com/ant-design/create-react-app-antd) - Use antd in create-react-app without ejecting +- [ScaffoldHub.io](https://scaffoldhub.io) - Generate fullstack React + Ant Design applications with MongoDB, SQL or Firebase Firestore. +- [The Green Meal](https://github.com/VincentCordobes/the-green-meal) - Next.js, PostgreSQL demo app written in TypeScript. +- [react-vite-admin](https://github.com/ychengcloud/react-vite-admin) - React, Recoil, React Query, React Hooks, Typescript, Axios. ## Non-JavaScript Libraries -为非 JavaScript 语言编写的库列表. +A list of libraries that are written for non-JavaScript languages. -- [Antizer](https://github.com/priornix/antizer) - 蚂蚁设计库 [ClojureScript](https://clojurescript.org/),一种可交叉编译为 JavaScript 的不可变函数式语言. -- [syn-antd](https://gitlab.com/synqrinus/syn-antd) - Ant Design 包装器 [ClojureScript](https://clojurescript.org/) 和 [Reagent](https://github.com/reagent-project/reagent) 使用 [shadow-cljs](http://shadow-cljs.org/) 有 tree-shaking 的支持. 与其他 ClojureScript 库一样,它交叉编译为 JavaScript. +- [Antizer](https://github.com/priornix/antizer) - Ant Design library for [ClojureScript](https://clojurescript.org/), an immutable, functional language that cross-compiles to JavaScript. +- [syn-antd](https://gitlab.com/synqrinus/syn-antd) - Ant Design wrapper for [ClojureScript](https://clojurescript.org/) and [Reagent](https://github.com/reagent-project/reagent) using [shadow-cljs](http://shadow-cljs.org/) with tree-shaking support. As with other ClojureScript libraries, it cross-compiles to JavaScript. ## Electron -- [StarCabinet](https://github.com/thundernet8/StarCabinet) - 基于 React、Electronand 和 Ant Design 的基于 Github Stars 的跨平台工具. -- [Nowa](https://github.com/nowa-webpack/nowa-gui) - 基于 webpack 的前端插件脚手架和开发解决方案. +- [StarCabinet](https://github.com/thundernet8/StarCabinet) - Github Stars-based cross-platform tool based on React, Electronand and Ant Design. +- [Nowa](https://github.com/nowa-webpack/nowa-gui) - A webpack based front-end plug-in scaffolding and development solution. ## Icons - [Official Ant Design Icons](http://github.com/ant-design/ant-design-icons) -- [Ant Design Icons](https://github.com/fjc0k/ant-design-icons) - 来自 Ant Design 和 Ant Design Mobile 的高级图标字体. -- [Material Design Icons](https://github.com/2fd/ant-design-icons) Ant Design 的 Material Design 图标 +- [Ant Design Icons](https://github.com/fjc0k/ant-design-icons) - The premium icon font from Ant Design and Ant Design Mobile. +- [Material Design Icons](https://github.com/2fd/ant-design-icons) Material Design Icons for Ant Design ## Design Tools and Resources -- [Kitchen](http://kitchen.alipay.com/) - 带有一系列功能的 Sketch 插件可以增强设计师的能力 -- [Ant Design Library](http://library.ant.design/) - Ant Design Axure 库 -- [Ant UX](http://ux.ant.design/) - OG、Sketch、Axure、Affinity、Adobe XD 中用于用户体验设计的站点地图模板. -- [Ant Design Design Resources](https://ant.design/docs/spec/download) - 素描符号 +- [Kitchen](http://kitchen.alipay.com/) - Sketch Plugin with suites of functions to enhance designers +- [Ant Design Library](http://library.ant.design/) - Ant Design Axure Library +- [Ant UX](http://ux.ant.design/) - Sitemap templates for ux design in OG, Sketch, Axure, Affinity, Adobe XD. +- [Ant Design Design Resources](https://ant.design/docs/spec/download) - Sketch Symbols ## Other -- [Ant Design of Ember](http://idcos.github.io/antd-ember/#/home) - 基于 Ant Design 和 Emberjs 的企业级 UI 框架. -- [Fable Ant Design](https://github.com/evilz/fable-ant-design) - Fable Elmish 的 Ant Design 绑定. +- [Ant Design of Ember](http://idcos.github.io/antd-ember/#/home) - Enterprise-class UI framework based on Ant Design and Emberjs. +- [Fable Ant Design](https://github.com/evilz/fable-ant-design) - Ant Design bindings for Fable Elmish. ## Contributing -随时欢迎您的贡献! [Click Here to read the guidelines](https://github.com/websemantics/awesome-ant-design/blob/master/contributing.md). +Your contributions are always welcome! [Click Here to read the guidelines](https://github.com/websemantics/awesome-ant-design/blob/master/contributing.md). ## License [![Creative Commons License](http://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/) -这项工作已获得许可 [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). +This work is licensed under a [Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/). diff --git a/docs/awesome/awesome-browser-extensions-for-github.md b/docs/awesome/awesome-browser-extensions-for-github.md index bfae7d6d88..c7794d3c1c 100644 --- a/docs/awesome/awesome-browser-extensions-for-github.md +++ b/docs/awesome/awesome-browser-extensions-for-github.md @@ -25,7 +25,7 @@ Want to know more about this process? Check out the [Codeless Contributions with Shows notifications when you get a new notification on GitHub and provides quick access to all notifications in a popup. -Installs: 133 | Stars: 76 | Last update: 2 Jun 2023 +Installs: 130 | Stars: 76 | Last update: 2 Jun 2023 Removes clutter from your pull request by automatically marking as viewed files that aren't worth reviewing. @@ -50,17 +50,17 @@ Installs: 802 | Stars: 19 | Last update: 2 May 2023 Show the # of PRs and other contributors stats in the Issues/PRs tab. Can be helpful for maintainers that want to know if it's a contributor's first PR. -Installs: 341 | Stars: 461 | Last update: 1 Mar 2021 +Installs: 340 | Stars: 461 | Last update: 1 Mar 2021 Displays size of each file, download link and an option of copying file contents directly to clipboard -Installs: 40723 | Stars: 1879 | Last update: 25 Dec 2021 +Installs: 40717 | Stars: 1879 | Last update: 25 Dec 2021 Easily search GIPHY to add a GIF into any GitHub comment box. -Installs: 9457 | Stars: 150 | Last update: 27 Jul 2023 +Installs: 9446 | Stars: 150 | Last update: 27 Jul 2023 Find the best GIFs for your awesome pull requests. @@ -70,7 +70,7 @@ Installs: 136 | Stars: 22 | Last update: n/a Quickly browse the history of a file from any git repository. -Installs: 7229 | Stars: 13385 | Last update: 6 May 2020 +Installs: 7225 | Stars: 13385 | Last update: 6 May 2020 GitHub provides a page that only shows diffs with a .diff at the end of the URL of the pull request. This browser extension makes it easier to view csv diffs by using daff on that page. @@ -80,7 +80,7 @@ Installs: 25 | Stars: 3 | Last update: 18 Apr 2021 Code folding - the ability to selectively hide and display sections of a code - is an invaluable feature in many text editors and IDEs. Now, developers can utilize that same style code-folding while poring over source code on the web in GitHub. Works for any type of indentation- spaces or tabs. -Installs: 3116 | Stars: 285 | Last update: 14 Jul 2022 +Installs: 3115 | Stars: 285 | Last update: 14 Jul 2022 Set custom tab size for code view on GitHub.com @@ -105,12 +105,12 @@ Installs: 1000 | Stars: 141 | Last update: 8 Oct 2019 Neat hovercards for GitHub. -Installs: 26696 | Stars: 1779 | Last update: 12 May 2021 +Installs: 26702 | Stars: 1779 | Last update: 12 May 2021 Colorize issue and PR links to see their status (open, closed, merged). -Installs: 953 | Stars: 293 | Last update: 4 Nov 2021 +Installs: 951 | Stars: 293 | Last update: 4 Nov 2021 Displays npm package stats on GitHub @@ -120,7 +120,7 @@ Installs: 621 | Stars: 57 | Last update: 31 May 2020 Lists repositories that are similar to the one being viewed -Installs: 335 | Stars: 37 | Last update: 10 Aug 2022 +Installs: 335 | Stars: 38 | Last update: 10 Aug 2022 Revert closed GitHub issues from purple back to red @@ -145,7 +145,7 @@ Installs: 1043 | Stars: 47 | Last update: 16 Jun 2022 This extension adds the simplicity of WYSIWYG editing to issues, comments, pull requests, wikis and discussions in GitHub. It accepts Markdown input and offers productive writing, starting with tables. -Installs: 2127 | Stars: 338 | Last update: 14 Jun 2023 +Installs: 2125 | Stars: 338 | Last update: 14 Jun 2023 View and create Linear tickets from any GitHub PR or issue. @@ -160,7 +160,7 @@ Installs: 2000 | Stars: 274 | Last update: 30 Sep 2021 It can make the sub-directories and files of github repository as zip and download it -Installs: 103173 | Stars: 30 | Last update: 21 Aug 2023 +Installs: 103137 | Stars: 30 | Last update: 21 Aug 2023 Create, save, edit, pin, search and delete filters that you commonly use on the Github Issues and Pull Requests pages. You are able to scope filters to be shown globally (on each repo) or only have them show up on the repo you create them on. Pinning filters is also a feature that this extension allows you to do. So if you have several filters you use daily - you have a way to quickly access them, at the top of your list. @@ -180,7 +180,7 @@ Installs: 2000 | Stars: 343 | Last update: n/a Hide dotfiles from the GitHub file browser. -Installs: 671 | Stars: 316 | Last update: 17 Sep 2021 +Installs: 670 | Stars: 316 | Last update: 17 Sep 2021 Allows you to toggle between the normal GitHub contribution chart and an isometric pixel art version. @@ -195,12 +195,12 @@ Installs: 64 | Stars: 230 | Last update: 26 May 2018 See forks with the most stars under the names of repositories. -Installs: 1324 | Stars: 549 | Last update: 1 Sep 2021 +Installs: 1320 | Stars: 549 | Last update: 1 Sep 2021 Show Material icons for files/folders in repository file viewer. Display the same icons from vscode-material-icon-theme VSCode extension. -Installs: 10581 | Stars: 371 | Last update: 30 Aug 2023 +Installs: 10576 | Stars: 371 | Last update: 30 Aug 2023 An extension that creates direct links to imported modules, external or internal, on source code on GitHub. Supports multiple languages, including common ones like Rust, Go, Python and Ruby, but also odd ones like Nim, Haskell, Julia and Elm. @@ -215,12 +215,12 @@ Installs: 21 | Stars: 14 | Last update: 1 Oct 2018 A Chrome and Firefox extension to quickly see your notifications in a popup without leaving the current page. -Installs: 422 | Stars: 142 | Last update: 6 Apr 2023 +Installs: 421 | Stars: 142 | Last update: 6 Apr 2023 Displays your GitHub notifications unread count. Supports GitHub Enterprise and an option to only show unread count for issues you're participating in. You can click the icon to quickly see your unread notifications. -Installs: 10534 | Stars: 1738 | Last update: 12 Jul 2023 +Installs: 10521 | Stars: 1738 | Last update: 12 Jul 2023 Filter your pull requests/issues in different categories giving you a big boost in productivity. Also suggests new trending repositories. @@ -230,7 +230,7 @@ Installs: 3 | Stars: 132 | Last update: 16 Jan 2020 OctoLinker is the easiest and best way to navigate between files and projects on GitHub. It supports languages such as JavaScript, Ruby, Go, PHP, JAVA and more. It works with package.json as well as with Gemfiles. -Installs: 32524 | Stars: 5175 | Last update: 13 Nov 2022 +Installs: 32514 | Stars: 5175 | Last update: 13 Nov 2022 OctoPermalinker is a browser extension that searches GitHub comments/files for links to files on branches, and adds a link to where the branch pointed when the comment/file was made/updated. This helps you avoid following a link that was broken after being posted. For context, here's some discussion about broken GitHub links: [Don't link to line numbers in GitHub](https://news.ycombinator.com/item?id=8046710). @@ -247,32 +247,32 @@ Installs: 4000 | Stars: 961 | Last update: 4 Feb 2022 Useful for developers who frequently read source in GitHub and do not want to download or checkout too many repositories. -Installs: 337299 | Stars: 22515 | Last update: 16 Aug 2023 +Installs: 337185 | Stars: 22515 | Last update: 16 Aug 2023 Revert GitHub's UI back to its classic look (before the June 23, 2020 update that has a flat, rounded and more whitespaced design). -Installs: 326 | Stars: 219 | Last update: 30 Apr 2023 +Installs: 326 | Stars: 220 | Last update: 30 Apr 2023 This browser extension allows you to open files in your IDE directly from GitHub, assuming the repository you are working on is cloned on your computer. When a fragment of a file is displayed, your IDE opens the file and puts the cursor at the desired line. -Installs: 1047 | Stars: 58 | Last update: 28 Nov 2022 +Installs: 1046 | Stars: 58 | Last update: 28 Nov 2022 Helps you keep track of incoming and outgoing PRs, and notifies you when you receive a pull request on GitHub. -Installs: 762 | Stars: 110 | Last update: 21 Jun 2023 +Installs: 760 | Stars: 110 | Last update: 21 Jun 2023 Browser extension that shows which pull requests contain changes related to a file. -Installs: 47 | Stars: 96 | Last update: 15 Oct 2020 +Installs: 46 | Stars: 96 | Last update: 15 Oct 2020 Extension that simplifies the GitHub interface and adds useful features. -Installs: 78058 | Stars: 21632 | Last update: 24 Aug 2023 +Installs: 77936 | Stars: 21645 | Last update: 24 Aug 2023 Are they tabs? Are they spaces? How many? Never wonder again! Renders spaces as `·` and tabs as `→` in all the code on GitHub. @@ -293,7 +293,7 @@ The Sourcegraph browser extension gives GitHub IDE-like powers when you're viewi 4. Hover tooltips 5. File tree navigation -Installs: 101049 | Stars: 8854 | Last update: 15 Apr 2023 +Installs: 101033 | Stars: 8860 | Last update: 15 Apr 2023 Make tab indented code more readable by forcing the tab size to 4 instead of 8. @@ -318,12 +318,12 @@ Installs: 70000 | Stars: n/a | Last update: 29 Aug 2023 All your issues, PRs, repos and other work documents right in your new tab -Installs: 20176 | Stars: n/a | Last update: 16 Jun 2023 +Installs: 20171 | Stars: n/a | Last update: 16 Jun 2023 file tree for github, and more than that. -Installs: 10456 | Stars: n/a | Last update: 12 Aug 2023 +Installs: 10447 | Stars: n/a | Last update: 12 Aug 2023 Add breakpoints at 1400px, 1600px and 1800px for full GitHub experience on large screens. Also removes the truncating of file and directory names in the repository browser. @@ -333,12 +333,12 @@ Installs: 2000 | Stars: 130 | Last update: 24 Jul 2020 gitpod streamlines developer workflows by providing ready-to-code development environments in your browser - powered by vs code. -Installs: 62494 | Stars: 124 | Last update: 31 Jul 2023 +Installs: 62455 | Stars: 124 | Last update: 31 Jul 2023 When viewing a repository on github.com that has a package.json file, this extension will introspect the dependencies in package.json and display links and description for each dependency, just below the repo's README. -Installs: 2077 | Stars: 706 | Last update: 29 May 2023 +Installs: 2076 | Stars: 706 | Last update: 29 May 2023 Extends GitHub pages with math, diagrams, embedded YouTube videos etc. diff --git a/docs/awesome/awesome-cl.md b/docs/awesome/awesome-cl.md index 62ef916c22..eb895c80a3 100644 --- a/docs/awesome/awesome-cl.md +++ b/docs/awesome/awesome-cl.md @@ -470,6 +470,7 @@ See this [extensive comparison](https://sabracrolleton.github.io/json-review) of JSON tools: +* [NJSON](https://github.com/atlas-engineer/njson) - Parser-agnostic JSON indexing (with JSON Pointer support), destructuring, and validation framework. [BSD][15]. * [json-mop](https://github.com/gschjetne/json-mop) - A metaclass for bridging CLOS and JSON objects. [MIT][200]. * [cl-json-pointer](https://github.com/y2q-actionman/cl-json-pointer) - A JSON Pointer implementation. [MIT][200]. * [cl-jwk](https://github.com/dnaeon/cl-jwk) - Common Lisp system for decoding public JSON Web Keys (JWK). BSD License. @@ -502,6 +503,7 @@ A large list of portability layers is collected here: [portability.cl/](https:// * [trivial-arguments](https://github.com/Shinmera/trivial-arguments) - A portable library to retrieve the arguments list of a function. [zlib][33]. * [definitions](https://github.com/Shinmera/definitions) - a general definitions introspection library. It gives you the ability to retrieve definitions or bindings associated with designators such as symbols, packages, and names in general. [zlib][33]. * [dissect](https://shinmera.github.io/dissect) - when a lot of projects use the “trivial-backtrace” system that just gives them a string with a backtrace, Dissect allows you to capture, step, and completely inspect the stack trace on a variety of Lisp implementations. Also very useful for logging and other situations where execution is automatically continued, but the information of the current stack is still useful to store somewhere. [zlib][33]. + * [ndebug](https://github.com/atlas-engineer/ndebug) - Framework for portable GUI (or any non-standard) debuggers, based on [dissect](https://shinmera.github.io/dissect) and [trivial-custom-debugger](https://github.com/phoe/trivial-custom-debugger). [BSD][15]. Changing the syntax ------------------- @@ -530,6 +532,7 @@ CLOS extensions * ⭐ [closer-mop](http://cliki.net/closer-mop) - A compatibility layer that rectifies many absent or incorrect MOP features. [Expat][14]. * [defclass-std](https://github.com/EuAndreh/defclass-std) - a shortcut macro to write DEFCLASS forms quickly. [LLGPL][8]. +* [nclasses](https://github.com/atlas-engineer/nclasses) - Syntactic sugar for class and generic function declarations. Fork of [hu.dwim.defclass-star](https://github.com/hu-dwim/hu.dwim.defclass-star). Features type inference, automatic accessors, inline initform syntax, automatic exports, and other conveniences. [BSD][15]. * [specialization-store](https://github.com/markcox80/specialization-store/) - generic functions based on types. Simplified BSD License variant. * [filtered-functions](https://github.com/pcostanza/filtered-functions) - enable the use of arbitrary predicates for selecting and applying methods. [MIT][200]. * [inlined-generic-function](https://github.com/guicho271828/inlined-generic-function) - @@ -1587,6 +1590,7 @@ Files and directories implementation of the Python's os.path module. [BSD][15]. * [mmap](https://github.com/Shinmera/mmap) - Portable mmap file memory mapping utility library. [zlib][33]. * [fof](https://gitlab.com/ambrevar/fof) - File-object finder Common Lisp library. Enable rapid file search, inspection and manipulation. [GPL3][2]. +* [nfiles](https://github.com/atlas-engineer/nfiles) - File persistence, watching, data synchronization, (per user profile) path resolution, and structured data retrieval. Has pre-defined classes for configuration files, remote fetched files, data files, Lisp-readable files and many others. [BSD][15]. File watching libraries: diff --git a/docs/awesome/awesome-dart.md b/docs/awesome/awesome-dart.md index aecc91ae3e..2afcf2c218 100644 --- a/docs/awesome/awesome-dart.md +++ b/docs/awesome/awesome-dart.md @@ -1,154 +1,158 @@
-真棒飞镖 [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) +Awesome Dart [![Awesome](https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg)](https://github.com/sindresorhus/awesome) ============ -很棒的 Dart 框架、库和软件的精选列表. 列表中的项目在 Dart 社区中得到了积极的维护、良好的文档记录和流行. 灵感来自 [awesome](https://github.com/sindresorhus/awesome) 列出. +A curated list of awesome Dart frameworks, libraries, and software. Items on the list are actively maintained, well documented, and popular in the Dart community. Inspired by the [awesome](https://github.com/sindresorhus/awesome) lists. ### Contributing -请快速浏览一下 [contribution guidelines](https://github.com/yissachar/awesome-dart/blob/master//CONTRIBUTING.md) 第一的. 如果您在这里看到不再维护或不合适的包或项目,请提交拉取请求以改进此文件. 谢谢你们 [contributors](https://github.com/yissachar/awesome-dart/graphs/contributors) ; 你摇滚! +Please take a quick look at the [contribution guidelines](https://github.com/yissachar/awesome-dart/blob/master//CONTRIBUTING.md) first. If you see a package or project here that is no longer maintained or is not a good fit, please submit a pull request to improve this file. Thank you to all [contributors](https://github.com/yissachar/awesome-dart/graphs/contributors); you rock! -*图书馆 +* Libraries ---- ## Client Web App Frameworks -* [AngularDart Community](https://github.com/angulardart-community) - 社区维护的 AngularDart 网站、包、工具等等! -* [Flutter](https://flutter.dev/) - Flutter 是一个构建高性能、跨平台移动应用程序的框架,允许为 Android、iOS 和 Web 应用程序编写应用程序. -* [MDL/Dart](http://mdl.mikemitterer.at//) - Dart 的 Material Design Lite 是基于 Google 的 Material Design 哲学的 Web 开发人员组件框架. -* [OverReact](https://workiva.github.io/over_react/) - 用于构建静态类型的 React UI 组件的库. +* [AngularDart Community](https://github.com/angulardart-community) - Community-maintained AngularDart websites, packages, tools, and more! +* [Flutter](https://flutter.dev/) - Flutter is a framework to build high-performance, cross-platform mobile apps, allowing applications to be written for Android, iOS and Web Apps. +* [MDL/Dart](http://mdl.mikemitterer.at//) - Material Design Lite for Dart is a framework of components for web developers based on Google's Material Design philosophy. +* [OverReact](https://workiva.github.io/over_react/) - A library for building statically-typed React UI components. ## Server Frameworks -* [Jaguar](https://github.com/Jaguar-dart/jaguar) - 为速度、简单性和可扩展性而构建的服务器框架. -* [Start](https://github.com/lvivski/start) - Sinatra 启发了 web 框架来提供静态文件、处理动态请求、websockets 和创建 JSON 响应. -* [Shelf](https://pub.dartlang.org/packages/shelf) - Shelf 使创建和组合 Web 服务器和 Web 服务器的一部分变得容易. - * 有许多为 Shelf 编写的包. 按照惯例,他们开始于 [shelf_](https://pub.dartlang.org/search?q=shelf_). -* [Vane](https://github.com/Scorpiion/Vane) - 内置服务器运行时环境和中间件系统的框架. -* [Rikulo Stream](https://github.com/rikulo/stream) - 具有请求路由、过滤、模板引擎、WebSocket、MVC 设计模式和基于文件的静态资源的轻量级 Web 服务器. -* [Alfred](https://github.com/rknell/alfred) - 具有路由和中间件的最小 ExpressJS 启发服务器. -* [Dart Frog](https://github.com/VeryGoodOpenSource/dart_frog) - 一个快速、简约的 Dart 后端框架. +* [Jaguar](https://github.com/Jaguar-dart/jaguar) - A server framework built for speed, simplicity and extensibility. +* [Start](https://github.com/lvivski/start) - Sinatra inspired web framework to serve static files, handle dynamic requests, websockets and create JSON responses. +* [Shelf](https://pub.dartlang.org/packages/shelf) - Shelf makes it easy to create and compose web servers and parts of web servers. + * There are many packages written for Shelf. By convention they start with [shelf_](https://pub.dartlang.org/search?q=shelf_). +* [Vane](https://github.com/Scorpiion/Vane) - Framework with built-in server runtime environment and middleware system. +* [Rikulo Stream](https://github.com/rikulo/stream) - Lightweight web server with request routing, filtering, template engine, WebSocket, MVC design pattern, and file-based static resources. +* [Alfred](https://github.com/rknell/alfred) - Minimal ExpressJS-inspired server with routing and middlware. +* [Dart Frog](https://github.com/VeryGoodOpenSource/dart_frog) - A fast, minimalistic backend framework for Dart. + +## Web Frameworks + +* [Jaspr](https://docs.page/schultek/jaspr) - Jaspr is an modern web framework for building websites in Dart with support for both client-side and server-side rendering. ## Other Frameworks -* [Rapid Open Hardware Development (ROHD) Framework](https://github.com/intel/rohd) - 描述和验证硬件的框架. +* [Rapid Open Hardware Development (ROHD) Framework](https://github.com/intel/rohd) - A framework for describing and verifying hardware. ## Cross-platform development -* [universal_io](https://github.com/terrier989/universal_io) - _dart:io_ 也适用于浏览器. -* [universal_html](https://github.com/terrier989/universal_html) - _dart:html_ 也适用于 VM/Flutter. +* [universal_io](https://github.com/terrier989/universal_io) - _dart:io_ that also works in the browser. +* [universal_html](https://github.com/terrier989/universal_html) - _dart:html_ that also works in the VM/Flutter. ## Game Development -* [Flame](https://github.com/luanpotter/flame#readme) - 极简主义的 Flutter 游戏引擎. -* [DartRocket](https://github.com/StrykerKKD/dartrocket) - DartRocket 是一个用 Dart 编写的 HTML5 游戏框架,它使用 StageXL 渲染引擎. -* [Pixi Dart](https://github.com/FedeOmoto/pixi) - pixi.js 渲染引擎的端口. -* [Ranger](https://github.com/wdevore/Ranger-Dart) - 以 HTML5 Canvas 和场景图为中心的游戏引擎. +* [Flame](https://github.com/luanpotter/flame#readme) - A minimalist Flutter game engine. +* [DartRocket](https://github.com/StrykerKKD/dartrocket) - DartRocket is a HTML5 game framework written in Dart and which uses the StageXL rendering engine. +* [Pixi Dart](https://github.com/FedeOmoto/pixi) - A port of the pixi.js rendering engine. +* [Ranger](https://github.com/wdevore/Ranger-Dart) - A game engine centered around HTML5 Canvas and a scene graph. ## Animation -* [Universal Tween Engine](https://github.com/xaguzman/tween-engine-dart) - 由 Aurelien Ribbon 创建的原始 java 通用 Tween 引擎的端口. -* [Spine Dart](https://github.com/FedeOmoto/spine) - Esoteric Software Spine 运行时的实现. +* [Universal Tween Engine](https://github.com/xaguzman/tween-engine-dart) - A port of the original java Universal Tween Engine created by Aurelien Ribbon. +* [Spine Dart](https://github.com/FedeOmoto/spine) - An implementation of the Esoteric Software Spine runtime. ## Template -* [mustache_template](https://pub.dev/packages/mustache_template) - 一个支持 dart2js 和 dart2native 的 mustache 模板库. -* [jaded](https://github.com/dartist/jaded) - 优秀的 Jade 视图引擎的端口. -* [mason](https://github.com/felangel/mason) - 允许开发人员创建和使用称为积木的可重用模板的工具. +* [mustache_template](https://pub.dev/packages/mustache_template) - A mustache template library that supports dart2js and dart2native. +* [jaded](https://github.com/dartist/jaded) - Port of the excellent Jade view engine. +* [mason](https://github.com/felangel/mason) - Tools which allow developers to create and consume reusable templates called bricks. ## Database -* [Postgres](https://github.com/stablekernel/postgresql-dart) - 一个 PostgreSQL 数据库驱动程序,它使用扩展的二进制协议来实现更高效、更安全的查询. -* [SQLJockey](https://github.com/jamesots/sqljocky) - MySQL 连接器. -* [PostgreSQL](https://github.com/xxgreg/dart_postgresql) - PostgreSQL 数据库驱动程序. +* [Postgres](https://github.com/stablekernel/postgresql-dart) - A PostgreSQL database driver that uses the extended, binary protocol for more efficient and secure queries. +* [SQLJockey](https://github.com/jamesots/sqljocky) - MySQL connector. +* [PostgreSQL](https://github.com/xxgreg/dart_postgresql) - PostgreSQL database driver. ## Package Managers -* [Pub](https://pub.dartlang.org/) - Pub 用于管理包. -* [Cloudsmith](https://cloudsmith.io/l/dart-repository/) - 完全托管的包管理 SaaS,支持 Dart、Flutter 等. **[公共/OSS 免费]** **[$]** +* [Pub](https://pub.dartlang.org/) - Pub is used to manage packages. +* [Cloudsmith](https://cloudsmith.io/l/dart-repository/) - A fully managed package management SaaS, with support for Dart, Flutter, and much more. **[Free for Public/OSS]** **[$]** ## Utilities -* [Archive](https://pub.dartlang.org/packages/archive) - 用于编码和解码各种存档和压缩格式的库. -* [built_collection](https://github.com/google/built_collection.dart) - 通过构建器模式的不可变集合. -* [built_value](https://github.com/google/built_value.dart) - 不可变值类型、枚举类和序列化. -* [Frappe](https://pub.dartlang.org/packages/frappe) - Dart 的功能性反应式编程库. Frappé 扩展了 Dart 流的功能,并引入了属性/信号等新概念. -* [Quiver](https://github.com/google/quiver-dart) - 一组实用程序库,使许多库的使用更容易、更方便,或添加额外的功能. -* [route_hierarchical](https://github.com/angular/route.dart) - Route 是 Dart 的客户端路由库,有助于构建单页 Web 应用程序. +* [Archive](https://pub.dartlang.org/packages/archive) - A library to encode and decode various archive and compression formats. +* [built_collection](https://github.com/google/built_collection.dart) - Immutable collections via the builder pattern. +* [built_value](https://github.com/google/built_value.dart) - Immutable value types, enum classes, and serialization. +* [Frappe](https://pub.dartlang.org/packages/frappe) - A functional reactive programming library for Dart. Frappé extends the functionality of Dart's streams, and introduces new concepts like properties/signals. +* [Quiver](https://github.com/google/quiver-dart) - A set of utility libraries that makes using many libraries easier and more convenient, or adds additional functionality. +* [route_hierarchical](https://github.com/angular/route.dart) - Route is a client routing library for Dart that helps make building single-page web apps. * [Darq](https://pub.dev/packages/darq) - A port of functional LINQ from the .NET library. -* [Basics](https://github.com/google/dart-basics) - 一个 Dart 库,包含对基本 Dart 对象的方便扩展方法. +* [Basics](https://github.com/google/dart-basics) - A Dart library containing convenient extension methods on basic Dart objects. ## Dependency Injection -* [Angular DI](https://webdev.dartlang.org/angular/guide/dependency-injection) - Angular 的依赖注入框架. -* [Dependencies](https://github.com/marcguilera/dependencies.dart) - 一个简单的模块化依赖注入系统,不使用镜像. -* [package: inject](https://github.com/google/inject.dart) - Dart 和 Flutter 的编译时依赖注入 +* [Angular DI](https://webdev.dartlang.org/angular/guide/dependency-injection) - Dependency Injection framework by Angular. +* [Dependencies](https://github.com/marcguilera/dependencies.dart) - A simple and modular dependency injection system which doesn't use mirrors. +* [package: inject](https://github.com/google/inject.dart) - Compile-time dependency injection for Dart and Flutter ## Parsers -* [html](https://pub.dartlang.org/packages/html) - 用于处理 HTML 文档的库. 以前称为 html5lib. -* [markdown](https://github.com/dart-lang/markdown) - 在客户端和服务器上将 markdown 解析为 HTML. -* [PetitParser](https://github.com/petitparser/dart-petitparser) - PetitParser 结合了无扫描器解析、解析器组合器、解析表达式语法和 Packrat 解析器的思想,将语法和解析器建模为可以动态重新配置的对象. -* [XML](https://pub.dartlang.org/packages/xml) - 用于解析、遍历、查询和构建 XML 文档的轻量级库. -* [xmlstream](https://pub.dartlang.org/packages/xml) - 基于流事件的 XML 解析器. -* [YAML](https://pub.dartlang.org/packages/yaml) - YAML 的解析器. -* [Dart Tags](https://pub.dartlang.org/packages/dart_tags) - 用于解析 ID3 标签的库,用纯 Dart 编写. +* [html](https://pub.dartlang.org/packages/html) - A library for working with HTML documents. Previously known as html5lib. +* [markdown](https://github.com/dart-lang/markdown) - Parse markdown into HTML on both the client and server. +* [PetitParser](https://github.com/petitparser/dart-petitparser) - PetitParser combines ideas from scannerless parsing, parser combinators, parsing expression grammars and packrat parsers to model grammars and parsers as objects that can be reconfigured dynamically. +* [XML](https://pub.dartlang.org/packages/xml) - A lightweight library for parsing, traversing, querying and building XML documents. +* [xmlstream](https://pub.dartlang.org/packages/xml) - A streaming event-based XML Parser. +* [YAML](https://pub.dartlang.org/packages/yaml) - A parser for YAML. +* [Dart Tags](https://pub.dartlang.org/packages/dart_tags) - The library for parsing ID3 tags, written in pure Dart. ## Validation -* [Constrain](https://pub.dartlang.org/packages/constrain) - 提供受 Java Bean Validation 启发但利用 Dart 卓越语言功能的基于约束的 Validation 库. -* [validator.dart](https://github.com/karan/validator.dart) - Dart 的字符串验证和清理. +* [Constrain](https://pub.dartlang.org/packages/constrain) - Provides a constraint based Validation library inspired by Java Bean Validation but leveraging the superior language capabilities of Dart. +* [validator.dart](https://github.com/karan/validator.dart) - String validation and sanitization for Dart. ## ORM -* [Objectory](https://github.com/vadimtsushko/objectory) - Objectory 提供类型化、检查的环境来建模、保存和查询 MongoDb 上持久保存的数据. +* [Objectory](https://github.com/vadimtsushko/objectory) - Objectory provides typed, checked environment to model, save and query data persisted on MongoDb. ## Image -* [image](https://github.com/brendan-duncan/image) - 为服务器和 Web 应用程序提供加载、操作和保存具有各种图像文件格式的图像的能力,包括 PNG、JPEG、GIF、WebP、TIFF、TGA、PSD、PVR 和 OpenEXR. +* [image](https://github.com/brendan-duncan/image) - Provides server and web apps the ability to load, manipulate, and save images with various image file formats including PNG, JPEG, GIF, WebP, TIFF, TGA, PSD, PVR, and OpenEXR. ## Testing -* [Guinness](https://github.com/vsavkin/guinness) - Jasmine 库的一个端口. -* [test](https://pub.dartlang.org/packages/test) - 提供在 Dart 中编写和运行测试的标准方法. -* [spec](https://pub.dev/packages/spec) - Dart & Flutter 的简化测试框架. +* [Guinness](https://github.com/vsavkin/guinness) - A port of the Jasmine library. +* [test](https://pub.dartlang.org/packages/test) - Provides a standard way of writing and running tests in Dart. +* [spec](https://pub.dev/packages/spec) - A streamlined testing framework for Dart & Flutter. ## Unions -* [Freezed](https://github.com/rrousselGit/freezed) - 不可变类的代码生成具有简单的语法/API,而不会影响功能. +* [Freezed](https://github.com/rrousselGit/freezed) - Code generation for immutable classes that has a simple syntax/API without compromising on the features. ## Crash monitoring -* [Sentry](https://github.com/getsentry/sentry-dart) - Sentry 提供自托管和基于云的错误监控,可帮助所有软件团队实时发现、分类错误并确定错误的优先级. +* [Sentry](https://github.com/getsentry/sentry-dart) - Sentry provides self-hosted and cloud-based error monitoring that helps all software teams discover, triage, and prioritize errors in real-time. ## Tools -* [DevTools](https://dart.dev/tools/dart-devtools) - 一套用于 Dart 和 Flutter 的调试和性能工具. -* [dart2js](https://www.dartlang.org/tools/dart2js/) - 将 Dart 代码编译成 JavaScript. -* [js2dart](https://github.com/vojtajina/js2dart) - 将 Javascript 代码编译为 Dart. -* [Stagehand](https://github.com/dart-lang/stagehand) - 受 Web Starter Kit 和 Yeoman 等工具启发的项目脚手架生成器. -* [Crossdart](https://crossdart.info) - 来自 Pub 的包的交叉引用源代码. -* [Crossdart Github Chrome Extension](https://chrome.google.com/webstore/detail/crossdart-chrome-extensio/jmdjoliiaibifkklhipgmnciiealomhd) - 为 Github 上的 Dart 项目添加“Go to declaration”和“Find Usages”功能(在树视图和拉取请求中). -* [gulp-dart](https://github.com/agudulin/gulp-dart) - 使用 dart2js 将 Dart 代码编译为 JavaScript 的 gulp 插件. -* [dev_compiler](https://github.com/dart-lang/dev_compiler) - Dart 到 JavaScript 编译器,旨在创建惯用的、可读的 JavaScript 输出. -* [json2dart](https://javiercbk.github.io/json_to_dart) - 给定一个 json,它生成 dart 类来解析并生成具有给定结构的 json. -* [webdev_proxy](https://github.com/Workiva/webdev_proxy) - 一个代理包装器 [webdev](https://github.com/dart-lang/webdev) 它增加了对将 404 重新路由到索引的支持,允许在本地运行时进行基于 HTML 推送的路由. -* [Dart Code Metrics](https://github.com/dart-code-checker/dart-code-metrics) - 报告代码指标、检查反模式并为分析器提供额外规则的附加 linter. -* [m2cgen](https://github.com/BayesWitnesses/m2cgen) - 一个 CLI 工具,用于将经过训练的经典 ML 模型转换为具有零依赖性的本机 Dart 代码. -* [Lakos](https://pub.dev/packages/lakos) - 在 Graphviz 中可视化内部库依赖关系并检测依赖循环. +* [DevTools](https://dart.dev/tools/dart-devtools) - a suite of debugging and performance tools for Dart and Flutter. +* [dart2js](https://www.dartlang.org/tools/dart2js/) - compiles Dart code to JavaScript. +* [js2dart](https://github.com/vojtajina/js2dart) - compiles Javascript code to Dart. +* [Stagehand](https://github.com/dart-lang/stagehand) - A project scaffolding generator, inspired by tools like Web Starter Kit and Yeoman. +* [Crossdart](https://crossdart.info) - Cross-referenced source code of the packages from Pub. +* [Crossdart Github Chrome Extension](https://chrome.google.com/webstore/detail/crossdart-chrome-extensio/jmdjoliiaibifkklhipgmnciiealomhd) - Adds "Go to declaration" and "Find Usages" functionality to your Dart projects on Github (both in tree views and pull requests). +* [gulp-dart](https://github.com/agudulin/gulp-dart) - A gulp plugin for compiling Dart code to JavaScript using dart2js. +* [dev_compiler](https://github.com/dart-lang/dev_compiler) - Dart to JavaScript compiler designed to create idiomatic, readable JavaScript output. +* [json2dart](https://javiercbk.github.io/json_to_dart) - Given a json, it generates the dart classes to parse and generate json with given structure. +* [webdev_proxy](https://github.com/Workiva/webdev_proxy) - A proxy wrapper around [webdev](https://github.com/dart-lang/webdev) which adds support for rerouting 404s to the index, allowing for HTML push-based routing while running locally. +* [Dart Code Metrics](https://github.com/dart-code-checker/dart-code-metrics) - Additional linter which reports code metrics, checks for anti-patterns and provides additional rules for Analyzer. +* [m2cgen](https://github.com/BayesWitnesses/m2cgen) - A CLI tool to transpile trained classic ML models into a native Dart code with zero dependencies. +* [Lakos](https://pub.dev/packages/lakos) - Visualize internal library dependencies in Graphviz and detect dependency cycles. ## Multithreading -* [isolator](https://pub.dev/packages/isolator) - Isolator 为您提供了一种简单的方法来创建双组件状态,其中包含隔离部分和任何类型的前端部分 - BLoC、MobX、ChangeNotifier 等 +* [isolator](https://pub.dev/packages/isolator) - Isolator offer to you a simple way for creating two-component states with isolated part and frontend part of any kind - BLoC, MobX, ChangeNotifier and others ## Tutorials -* [Hello Dart](http://code.makery.ch/library/hello-dart/) - 对 Dart 的有趣介绍. +* [Hello Dart](http://code.makery.ch/library/hello-dart/) - A playful introduction to Dart. * [Getting Started with Dart & React](https://www.leejamesrobinson.com/blog/getting-started-with-dart-and-react/) -* [Tour of Heroes](https://webdev.dartlang.org/angular/tutorial) - 涵盖 AngularDart 核心基础知识的应用程序. -* [Dart for beginner](https://www.myfreax.com/tag/dart/) - Dart 初学者中文教程. -* [Resolving Dart package version conflicts, faster than ever](https://iiro.dev/2018/08/28/resolving-dart-package-version-conflicts/) - 如何使用 pub 中的任何包版本来解决包版本冲突. +* [Tour of Heroes](https://webdev.dartlang.org/angular/tutorial) - An app which covers the core fundamentals of AngularDart. +* [Dart for beginner](https://www.myfreax.com/tag/dart/) - Dart Chinese tutorial for beginner. +* [Resolving Dart package version conflicts, faster than ever](https://iiro.dev/2018/08/28/resolving-dart-package-version-conflicts/) - How to use any package version in pub to resolve package version conflicts. ## Community @@ -162,20 +166,20 @@ ## IDEs, Editors, and Plugins -* [IntelliJ Plugin](https://www.dartlang.org/tools/webstorm/) - 来自 JetBrains 的 Dart 插件,适用于 WebStorm、IntelliJ IDEA、PhpStorm、PyCharm 和 RubyMine. -* [Sublime Text Package](https://github.com/guillermooo/dart-sublime-bundle) - Sublime Text 3 Dart 包. -* [Emacs Plugin](https://github.com/nex3/dart-mode) - Dart 语言的 Emacs 模式. -* [Vim Plugin](https://github.com/dart-lang/dart-vim-plugin) - Vim 中 Dart 的语法高亮显示. -* [Atom Plugin](https://atom.io/packages/atom-dart) - 对 Atom 的飞镖支持. -* [VSCode Plugin](https://dartcode.org/) - 对 Visual Studio Code 的 Dart 支持. -* [DartPad](https://dartpad.dartlang.org/) - 在线轻量级编辑器. -* [Dart Code](https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-code) - 对 Visual Studio Code 的 Dart 支持. -* [Module Linker](http://fiatjaf.alhur.es/module-linker/#/dart) - 添加到 GitHub 上模块导入语句的直接链接的 Chrome 扩展. -* [Dart Barrel File Generator](https://github.com/mikededo/dartBarrelFileGenerator) - 为 Dart 项目生成桶文件的 VSCode 扩展. +* [IntelliJ Plugin](https://www.dartlang.org/tools/webstorm/) - Dart plugin from JetBrains for WebStorm, IntelliJ IDEA, PhpStorm, PyCharm, and RubyMine. +* [Sublime Text Package](https://github.com/guillermooo/dart-sublime-bundle) - Sublime Text 3 Dart Package. +* [Emacs Plugin](https://github.com/nex3/dart-mode) - An Emacs mode for the Dart language. +* [Vim Plugin](https://github.com/dart-lang/dart-vim-plugin) - Syntax highlighting for Dart in Vim. +* [Atom Plugin](https://atom.io/packages/atom-dart) - Dart support for Atom. +* [VSCode Plugin](https://dartcode.org/) - Dart support for Visual Studio Code. +* [DartPad](https://dartpad.dartlang.org/) - Online lightweight editor. +* [Dart Code](https://marketplace.visualstudio.com/items?itemName=Dart-Code.dart-code) - Dart support for Visual Studio Code. +* [Module Linker](http://fiatjaf.alhur.es/module-linker/#/dart) - Chrome Extension that adds direct links to module import statements on GitHub. +* [Dart Barrel File Generator](https://github.com/mikededo/dartBarrelFileGenerator) - VSCode extension that generates barrel files for Dart projects. ## Everything Else -有很多很棒的库被添加到 [Pub](https://pub.dartlang.org/) 每时每刻. 如果您在此列表中找不到满足您需求的图书馆,请继续在 Pub 上搜索它. 如果你最终找到了一个很棒的库,我们会喜欢一个带有信息的拉取请求,这样其他人也可以发现它. 请务必阅读 [contributing guidelines](https://github.com/yissachar/awesome-dart/blob/master/CONTRIBUTING.md) 第一的. +There are lots of awesome libraries being added to [Pub](https://pub.dartlang.org/) all the time. If you can't find a library on this list that meets your needs, go ahead and search for it on Pub. And if you end up finding an awesome library, we would love a pull request with the info so that everyone else can discover it as well. Just make sure to read the [contributing guidelines](https://github.com/yissachar/awesome-dart/blob/master/CONTRIBUTING.md) first. ## License diff --git a/docs/awesome/awesome-ebpf.md b/docs/awesome/awesome-ebpf.md index aacc356a48..a8354a06a5 100644 --- a/docs/awesome/awesome-ebpf.md +++ b/docs/awesome/awesome-ebpf.md @@ -1,13 +1,13 @@ ## Awesome eBPF [![Awesome](https://awesome.re/badge.svg)](https://github.com/sindresorhus/awesome) -> 与 eBPF 相关的精彩项目的精选列表. +> A curated list of awesome projects related to eBPF. - BPF,如_Berkeley Packet Filter_中所示,是一个内核虚拟机,运行从用户空间传递的程序. 最初在 BSD 上实现,然后在 Linux 上实现,(现在是遗留的)“经典 BPF”或 cBPF 机器将与 tcpdump 等工具一起使用,用于过滤内核中的数据包,以避免无用的复制到用户空间. 最近,Linux 中的 BPF 基础设施已经完全重新设计,并为“扩展 BPF”或 eBPF 赋予了生命,它获得了新功能(安全和终止检查、程序的 JIT 编译、持久映射、标准库、硬件卸载)支持等),现在用于许多任务. 在极低级别处理数据包 (XDP)、跟踪和监视系统上的事件或对 cgroup 实施访问控制只是 eBPF 带来性能、可编程性和灵活性的几个示例. +BPF, as in _Berkeley Packet Filter_, is an in-kernel virtual machine running programs passed from user space. Initially implemented on BSD, then Linux, the (now legacy) "classic BPF" or cBPF machine would be used with tools like tcpdump for filtering packets in the kernel to avoid useless copies to user space. More recently, the BPF infrastructure in Linux has been completely reworked and gave life to the "extended BPF", or eBPF, which gained new features (safety and termination checks, JIT-compiling for programs, persistent maps, a standard library, hardware offload support, etc.) and is now used for many tasks. Processing packets at a very low level (XDP), tracing and monitoring events on the system, or enforcing access control over cgroups are but a few examples to which eBPF brings performance, programmability and flexibility. -Recently [Cilium](https://cilium.io) 推出了一个关于 eBPF 的优秀网站,名为 [ebpf.io](https://ebpf.io/) . 它的用途与此列表类似,其中 [an introduction to eBPF](https://ebpf.io/what-is-ebpf) 并链接到 [related projects](https://ebpf.io/projects). +Recently [Cilium](https://cilium.io) launched a great website about eBPF called [ebpf.io](https://ebpf.io/). It serves a similar purpose to this list, with [an introduction to eBPF](https://ebpf.io/what-is-ebpf) and links to [related projects](https://ebpf.io/projects). - > 注意:eBPF 是一项令人兴奋的技术,其生态系统正在不断发展. 我们希望得到_you_的帮助,使这个很棒的列表保持最新状态,并尽我们所能提高其信噪比. 请随意离开 [any feedback](https://github.com/zoidbergwill/awesome-ebpf/issues). +> Note: eBPF is an exciting piece of technology, and its ecosystem is constantly evolving. We'd love help from _you_ to keep this awesome list up to date, and improve its signal-to-noise ratio in anyway we can. Please feel free to leave [any feedback](https://github.com/zoidbergwill/awesome-ebpf/issues). @@ -15,27 +15,27 @@ Recently [Cilium](https://cilium.io) 推出了一个关于 eBPF 的优秀网站 ### eBPF Essentials -- [ebpf.io](https://ebpf.io/) - 发现 eBPF 所有基础知识的门户,包括主要相关项目和社区资源的列表. -- [Cilium's BPF and XDP Reference Guide](http://docs.cilium.io/en/latest/bpf/) - 有关 eBPF 的大多数功能和方面的深入文档. +- [ebpf.io](https://ebpf.io/) - A gateway to discover all the basics of eBPF, including a listing of the main related projects and of community resources. +- [Cilium's BPF and XDP Reference Guide](http://docs.cilium.io/en/latest/bpf/) - In-depth documentation about most features and aspects of eBPF. ### Kernel Documentation -- [BPF Documentation](https://www.kernel.org/doc/html/latest/bpf/index.html) - Linux 内核附带的 BPF 相关文档索引. -- [linux/Documentation/networking/filter.rst](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/filter.rst) - eBPF 规范(有些过时;信息应该仍然有效,但不详尽). -- [BPF Design Q&A](https://www.kernel.org/doc/html/latest/bpf/bpf_design_QA.html) - 有关 BPF 基础设施背后决策的常见问题. -- [HOWTO interact with BPF subsystem](https://www.kernel.org/doc/html/latest/bpf/bpf_devel_QA.html) - 有关为 eBPF 开发做出贡献的常见问题. +- [BPF Documentation](https://www.kernel.org/doc/html/latest/bpf/index.html) - Index for BPF-related documentation coming with the Linux kernel. +- [linux/Documentation/networking/filter.rst](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/networking/filter.rst) - eBPF specification (somewhat outdated; information should still be valid, but not exhaustive). +- [BPF Design Q&A](https://www.kernel.org/doc/html/latest/bpf/bpf_design_QA.html) - Frequently Asked Questions on the decisions behind the BPF infrastructure. +- [HOWTO interact with BPF subsystem](https://www.kernel.org/doc/html/latest/bpf/bpf_devel_QA.html) - Frequently Asked Questions about contributing to eBPF development. ### Manual Pages -- [`bpf(2)`](http://man7.org/linux/man-pages/man2/bpf.2.html) - 有关“bpf()”系统调用的手册页,用于管理用户空间中的 BPF 程序和映射. -- [`tc-bpf(8)`](http://man7.org/linux/man-pages/man8/tc-bpf.8.html) - 有关将 BPF 与 tc 结合使用的手册页,包括示例命令和代码示例. -- [`bpf-helpers(7)` man page](http://man7.org/linux/man-pages/man7/bpf-helpers.7.html) - 构成 BPF 标准库的内核辅助函数的描述. +- [`bpf(2)`](http://man7.org/linux/man-pages/man2/bpf.2.html) - Manual page about the `bpf()` system call, used to manage BPF programs and maps from userspace. +- [`tc-bpf(8)`](http://man7.org/linux/man-pages/man8/tc-bpf.8.html) - Manual page about using BPF with tc, including example commands and samples of code. +- [`bpf-helpers(7)` man page](http://man7.org/linux/man-pages/man7/bpf-helpers.7.html) - Description of the in-kernel helper functions forming the BPF standard library. ### Other -- [IO Visor's Unofficial eBPF spec](https://github.com/iovisor/bpf-docs/blob/master/eBPF.md) - eBPF语法和操作代码总结. -- [Jesper Dangaard Brouer's documentation](https://prototype-kernel.readthedocs.io/en/latest/bpf/index.html) - 工作正在进行中,欢迎贡献. -- 大卫·米勒 (David Miller) 发给 [xdp-newbies](http://vger.kernel.org/vger-lists.html#xdp-newbies) 邮件列表: +- [IO Visor's Unofficial eBPF spec](https://github.com/iovisor/bpf-docs/blob/master/eBPF.md) - Summary of eBPF syntax and operation codes. +- [Jesper Dangaard Brouer's documentation](https://prototype-kernel.readthedocs.io/en/latest/bpf/index.html) - Work in progress, contributions welcome. +- Emails from David Miller to the [xdp-newbies](http://vger.kernel.org/vger-lists.html#xdp-newbies) mailing list: - [bpf.h and you...](https://www.spinics.net/lists/xdp-newbies/msg00179.html) - [Contextually speaking...](https://www.spinics.net/lists/xdp-newbies/msg00181.html) @@ -47,10 +47,10 @@ Recently [Cilium](https://cilium.io) 推出了一个关于 eBPF 的优秀网站 ### Generic eBPF Presentations and Articles -如果您是 eBPF 的新手,您可能想尝试本节中描述为“简介”的链接. +If you are new to eBPF, you may want to try the links described as "introductions" in this section. -- [A brief introduction to XDP and eBPF](https://blogs.igalia.com/dpino/2019/01/07/introduction-to-xdp-and-ebpf/) - 易于理解的介绍,提供有关 eBPF 功能的背景、历史和详细信息. -- eBPF 概述 - Adrian Ratiu 的博客系列,涵盖了 eBPF 基础设施的许多方面: +- [A brief introduction to XDP and eBPF](https://blogs.igalia.com/dpino/2019/01/07/introduction-to-xdp-and-ebpf/) - An accessible introduction providing context, history, and details about the functioning of eBPF. +- An eBPF Overview - Blog series by Adrian Ratiu, covering many aspects of the eBPF infrastructure: - [Part 1: Introduction](https://www.collabora.com/news-and-blog/blog/2019/04/05/an-ebpf-overview-part-1-introduction/) - [Part 2: Machine & Bytecode](https://www.collabora.com/news-and-blog/blog/2019/04/15/an-ebpf-overview-part-2-machine-and-bytecode/) @@ -58,325 +58,326 @@ Recently [Cilium](https://cilium.io) 推出了一个关于 eBPF 的优秀网站 - [Ferris Ellis's blog posts about eBPF](https://ferrisellis.com/tags/ebpf/) - They have a few posts about eBPF: - [Part 1: Past, Present, and Future](https://ferrisellis.com/content/ebpf_past_present_future/) - [Part 2: Syscall and Map Types](https://ferrisellis.com/content/ebpf_syscall_and_maps/) -- [A BPF reference guide](https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md) - 关于 BPF C 和 bcc Python 帮助程序,来自 bcc 存储库. -- [Making the Kernel's Networking Data Path Programmable with BPF and XDP](http://schd.ws/hosted_files/ossna2017/da/BPFandXDP.pdf) - 一组幻灯片,涵盖有关 eBPF 和 XDP 的所有基础知识(主要用于网络处理). -- [The BSD Packet Filter](https://speakerdeck.com/tuxology/the-bsd-packet-filter) - 主要涵盖跟踪方面的介绍. -- [BPF: tracing and more](http://www.slideshare.net/brendangregg/bpf-tracing-and-more) - 主要涵盖跟踪方面的介绍. -- [Linux BPF Superpowers](http://www.slideshare.net/brendangregg/linux-bpf-superpowers) - 介绍主要涵盖跟踪方面,第一部分是火焰图. -- [IO Visor](https://www.socallinuxexpo.org/sites/default/files/presentations/Room%20211%20-%20IOVisor%20-%20SCaLE%2014x.pdf) - 还介绍了 [IO Visor project](https://www.iovisor.org/). -- [BPF -- in-kernel virtual machine](http://vger.kernel.org/netconf2015Starovoitov-bpf_collabsummit_2015feb20.pdf) - eBPF 作者的演示. +- [A BPF reference guide](https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md) - About BPF C and bcc Python helpers, from bcc repository. +- [Making the Kernel's Networking Data Path Programmable with BPF and XDP](http://schd.ws/hosted_files/ossna2017/da/BPFandXDP.pdf) - A set of slides covering all the basics about eBPF and XDP (mostly for network processing). +- [The BSD Packet Filter](https://speakerdeck.com/tuxology/the-bsd-packet-filter) - An introduction mostly covering the tracing aspects. +- [BPF: tracing and more](http://www.slideshare.net/brendangregg/bpf-tracing-and-more) - An introduction mostly covering the tracing aspects. +- [Linux BPF Superpowers](http://www.slideshare.net/brendangregg/linux-bpf-superpowers) - An introduction mostly covering the tracing aspects, first part with flame graphs. +- [IO Visor](https://www.socallinuxexpo.org/sites/default/files/presentations/Room%20211%20-%20IOVisor%20-%20SCaLE%2014x.pdf) - Also introduces [IO Visor project](https://www.iovisor.org/). +- [BPF -- in-kernel virtual machine](http://vger.kernel.org/netconf2015Starovoitov-bpf_collabsummit_2015feb20.pdf) - Presentation by the author of eBPF. - [Extending extended BPF](https://lwn.net/Articles/603983/) - A blog post from 2014 on the development of BPF and demonstrating what can be done with it, using an example of stateful socket filtering by attaching an eBPF program to a socket. -- Greg Marsden 制作了一些关于 eBPF 的文档: - - [A Tour of Program Types](https://blogs.oracle.com/linux/notes-on-bpf-1) - BPF 程序类型的所有现有挂钩及其兴趣的描述. - - [BPF helper functions](https://blogs.oracle.com/linux/notes-on-bpf-2) - 回顾可以从 eBPF 程序中调用的内核函数. - - [Communicating with Userspace](https://blogs.oracle.com/linux/notes-on-bpf-3) - BPF 如何与用户空间通信 - BPF 映射、性能事件、bpf_trace_printk. - - [Building BPF Programs](https://blogs.oracle.com/linux/notes-on-bpf-4) - 设置环境来构建 BPF 程序. - - [The BPF Bytecode and the BPF Verifier](https://blogs.oracle.com/linux/notes-on-bpf-5) - BPF如何保证程序安全? - - [Using BPF to do Packet Transformation](https://blogs.oracle.com/linux/notes-on-bpf-6) - 一种有关数据包转换的 eBPF 用法. -- [Linux Kernel Observability through eBPF](https://sematext.com/blog/linux-kernel-observability-ebpf/) - 一篇博客文章,介绍了 eBPF 的基础知识以及 Go 中的代码示例,介绍了如何构建最小的 eBPF 程序并将其加载到内核中. -- [eBPF - From a Programmer's Perspective](https://www.researchgate.net/publication/349173667_eBPF_-_From_a_Programmer's_Perspective) - 一篇简短的论文,描述了 eBPF 的基础知识以及如何开始编写 eBPF 程序. -- [Cloudflare's blog posts on eBPF](https://blog.cloudflare.com/tag/ebpf/) - 有关网络用例和 eBPF 底层方面的不同博客文章. -- [Linux Extended BPF (eBPF) Tracing Tools](https://www.brendangregg.com/ebpf.html) - 围绕使用 eBPF 的性能分析工具示例的深入信息收集. 页面末尾还包含有关其他资源的部分. -- [Beginner's guide to eBPF](https://github.com/lizrice/ebpf-beginners) - 一组实时编码讲座和随附的代码示例,介绍使用各种库和程序类型的 eBPF 编程. +- Greg Marsden made some documentation about eBPF: + - [A Tour of Program Types](https://blogs.oracle.com/linux/notes-on-bpf-1) - A description of all existing hooks for BPF program types, and of their interest. + - [BPF helper functions](https://blogs.oracle.com/linux/notes-on-bpf-2) - A review of the kernel functions that can be called from within eBPF programs. + - [Communicating with Userspace](https://blogs.oracle.com/linux/notes-on-bpf-3) - How BPF communicates with userspace - BPF maps, perf events, bpf_trace_printk. + - [Building BPF Programs](https://blogs.oracle.com/linux/notes-on-bpf-4) - Setting up your environment to build BPF programs. + - [The BPF Bytecode and the BPF Verifier](https://blogs.oracle.com/linux/notes-on-bpf-5) - How does BPF ensure that programs are safe? + - [Using BPF to do Packet Transformation](https://blogs.oracle.com/linux/notes-on-bpf-6) - One eBPF usage about packet transformation. +- [Linux Kernel Observability through eBPF](https://sematext.com/blog/linux-kernel-observability-ebpf/) - A blog post covering the basics of eBPF as well as code samples in Go on how to build and load a minimal eBPF program into the kernel. +- [eBPF - From a Programmer's Perspective](https://www.researchgate.net/publication/349173667_eBPF_-_From_a_Programmer's_Perspective) - A short paper describing the fundamentals of eBPF and how to get started with writing eBPF programs. +- [Cloudflare's blog posts on eBPF](https://blog.cloudflare.com/tag/ebpf/) - Different blog posts about networking use cases and low-level aspects of eBPF. +- [Linux Extended BPF (eBPF) Tracing Tools](https://www.brendangregg.com/ebpf.html) - An in-depth collection of information around examples of performance analysis tools using eBPF. Contains also a section at the end of the page about other resources. +- [Beginner's guide to eBPF](https://github.com/lizrice/ebpf-beginners) - A set of live-coding talks and the accompanying code examples, introducing eBPF programming using a variety of libraries and program types. ### BPF Internals -- Daniel Borkmann 做了一些介绍 eBPF 内部结构的演讲和论文,特别是关于它与 tc 的使用. +- Daniel Borkmann has made several presentations and papers covering the internals of eBPF, in particular about its use with tc. - [eBPF and XDP walkthrough and recent (2017) updates](https://fosdem.org/2017/schedule/event/ebpf_xdp/) - - [Advanced programmability and recent updates with tc's cls_bpf](http://netdevconf.org/1.2/session.html?daniel-borkmann) - 有关 eBPF、其用于隧道和封装、直接数据包访问等的详细信息. - - [cls_bpf/eBPF updates since netdev 1.1](http://netdevconf.org/1.2/slides/oct5/07_tcws_daniel_borkmann_2016_tcws.pdf) - 部分 [this tc workshop](http://netdevconf.org/1.2/session.html?jamal-tc-workshop). - - [On getting tc classifier fully programmable with cls_bpf](http://www.netdevconf.org/1.1/proceedings/slides/borkmann-tc-classifier-cls-bpf.pdf) - eBPF 简介,包括几个功能(映射管理、尾部调用、验证器). 全文 [is also available here](http://www.netdevconf.org/1.1/proceedings/papers/On-getting-tc-classifier-fully-programmable-with-cls-bpf.pdf). + - [Advanced programmability and recent updates with tc's cls_bpf](http://netdevconf.org/1.2/session.html?daniel-borkmann) - Details on eBPF, its use for tunneling and encapsulation, direct packet access, and more. + - [cls_bpf/eBPF updates since netdev 1.1](http://netdevconf.org/1.2/slides/oct5/07_tcws_daniel_borkmann_2016_tcws.pdf) - Part of [this tc workshop](http://netdevconf.org/1.2/session.html?jamal-tc-workshop). + - [On getting tc classifier fully programmable with cls_bpf](http://www.netdevconf.org/1.1/proceedings/slides/borkmann-tc-classifier-cls-bpf.pdf) - Introduction to eBPF, including several features (map management, tail calls, verifier). The full paper [is also available here](http://www.netdevconf.org/1.1/proceedings/papers/On-getting-tc-classifier-fully-programmable-with-cls-bpf.pdf). - [Linux tc and eBPF](https://archive.fosdem.org/2016/schedule/event/ebpf/attachments/slides/1159/export/events/attachments/ebpf/slides/1159/ebpf.pdf) - [IO Visor blog](https://www.iovisor.org/resources/blog) -- [Linux Networking Explained](http://www.slideshare.net/ThomasGraf5/linux-networking-explained) - Linux 网络内部结构,其中一部分是关于 eBPF 的. +- [Linux Networking Explained](http://www.slideshare.net/ThomasGraf5/linux-networking-explained) - Linux networking internals, with a part about eBPF. ### Kernel Tracing -- [Full-system dynamic tracing on Linux using eBPF and bpftrace](https://www.joyfulbikeshedding.com/blog/2019-01-31-full-system-dynamic-tracing-on-linux-using-ebpf-and-bpftrace.html) - 详细介绍了使用 eBPF 进行跟踪,从列出可用的跟踪点到运行 bpftrace 程序. -- [Meet-cute between eBPF and Kernel Tracing](http://www.slideshare.net/vh21/meet-cutebetweenebpfandtracing) - Kprobes、uprobes、ftrace. -- [Linux Kernel Tracing](http://www.slideshare.net/vh21/linux-kernel-tracing) - Systemtap、Kernelshark、trace-cmd、LTTng、perf-tool、ftrace、hist-trigger、perf、函数跟踪器、tracepoint、kprobe/uprobe 等. -- Brendan Gregg 的博客,特别是 [Linux BPF Superpowers](http://www.brendangregg.com/blog/2016-03-05/linux-bpf-superpowers.html) 文章. +- [Full-system dynamic tracing on Linux using eBPF and bpftrace](https://www.joyfulbikeshedding.com/blog/2019-01-31-full-system-dynamic-tracing-on-linux-using-ebpf-and-bpftrace.html) - A detailed introduction to tracing with eBPF, from listing the available trace points to running bpftrace programs. +- [Meet-cute between eBPF and Kernel Tracing](http://www.slideshare.net/vh21/meet-cutebetweenebpfandtracing) - Kprobes, uprobes, ftrace. +- [Linux Kernel Tracing](http://www.slideshare.net/vh21/linux-kernel-tracing) - Systemtap, Kernelshark, trace-cmd, LTTng, perf-tool, ftrace, hist-trigger, perf, function tracer, tracepoint, kprobe/uprobe, and more. +- Brendan Gregg's blog, and in particular [Linux BPF Superpowers](http://www.brendangregg.com/blog/2016-03-05/linux-bpf-superpowers.html) article. ### XDP -- [The eXpress Data Path](https://blogs.igalia.com/dpino/2019/01/10/the-express-data-path/) - 非常容易理解的 XDP 介绍,提供示例代码来展示如何处理数据包. -- 技术论文中的所有 XDP 详细信息: [The eXpress Data Path: Fast Programmable Packet Processing in the Operating System Kernel](https://github.com/tohojo/xdp-paper),作者:Toke Høiland-Jørgensen、Jesper Dangaard Brouer、Daniel Borkmann、John Fastabend、Tom Herbert、David Ahern 和 David Miller,他们都是 eBPF 和 XDP 的重要贡献者. +- [The eXpress Data Path](https://blogs.igalia.com/dpino/2019/01/10/the-express-data-path/) - A very accessible introduction to XDP, providing sample code to show how to process packets. +- All XDP details in a technical paper: [The eXpress Data Path: Fast Programmable Packet Processing in the Operating System Kernel](https://github.com/tohojo/xdp-paper), by Toke Høiland-Jørgensen, Jesper Dangaard Brouer, Daniel Borkmann, John Fastabend, Tom Herbert, David Ahern and David Miller, all being essential eBPF and XDP contributors. - [Work-in-progress documentation for XDP](https://prototype-kernel.readthedocs.io/en/latest/networking/XDP/index.html) -- [BPF and XDP Reference Guide](http://docs.cilium.io/en/latest/bpf/) - 来自 Cilium 项目的指南. +- [BPF and XDP Reference Guide](http://docs.cilium.io/en/latest/bpf/) - Guide from the Cilium project. - [XDP Project overview](https://www.iovisor.org/technology/xdp) -- [eXpress Data Path (XDP)](https://github.com/iovisor/bpf-docs/raw/master/Express_Data_Path.pdf) - 关于 XDP 的第一个演示. +- [eXpress Data Path (XDP)](https://github.com/iovisor/bpf-docs/raw/master/Express_Data_Path.pdf) - The first presentation about XDP. - [BoF - What Can BPF Do For You?](https://events.linuxfoundation.org/sites/events/files/slides/iovisor-lc-bof-2016.pdf) -- [eXpress Data Path](http://www.slideshare.net/IOVisor/express-data-path-linux-meetup-santa-clara-july-2016) - 包含使用 mlx4 驱动程序获得的一些基准测试结果. -- Jesper Dangaard Brouer 有几组幻灯片描述了 XDP 的内部结构: +- [eXpress Data Path](http://www.slideshare.net/IOVisor/express-data-path-linux-meetup-santa-clara-july-2016) - Contains some benchmark results obtained with the mlx4 driver. +- Jesper Dangaard Brouer has several sets of slides describing the internals of XDP: - - [XDP − eXpress Data Path, Intro and future use-cases](http://people.netfilter.org/hawk/presentations/xdp2016/xdp_intro_and_use_cases_sep2016.pdf) - Linux 内核与 DPDK 的斗争. XDP 的未来计划(截至撰写本文时)以及与 DPDK 的比较. - - [Network Performance Workshop](http://netdevconf.org/1.2/session.html?jesper-performance-workshop) - 有关 XDP 内部结构和预期演变的其他提示. - - [XDP – eXpress Data Path, Used for DDoS protection](http://people.netfilter.org/hawk/presentations/OpenSourceDays2017/XDP_DDoS_protecting_osd2017.pdf) - 有关 XDP 的详细信息和用例,包括基准测试结果、基准测试代码片段以及使用 eBPF/XDP 进行基本 DDoS 保护(基于 IP 黑名单方案). - - [Memory vs. Networking, Provoking and fixing memory bottlenecks](http://people.netfilter.org/hawk/presentations/MM-summit2017/MM-summit2017-JesperBrouer.pdf) - 有关 XDP 开发人员当前面临的内存问题的高级详细信息. - - [XDP for the Rest of Us](http://netdevconf.org/2.1/session.html?gospodarek) - 如何为普通人开始使用 eBPF 和 XDP. 朱莉娅·埃文斯 (Julia Evans) 也总结了 [her blog](http://jvns.ca/blog/2017/04/07/xdp-bpf-tutorial/). - - [XDP now with REDIRECT](http://people.netfilter.org/hawk/presentations/LLC2018/XDP_LLC2018_redirect.pdf) - XDP 更新,特别是重定向操作. + - [XDP − eXpress Data Path, Intro and future use-cases](http://people.netfilter.org/hawk/presentations/xdp2016/xdp_intro_and_use_cases_sep2016.pdf) - Linux Kernel's fight against DPDK. Future plans (as of this writing) for XDP and comparison with DPDK. + - [Network Performance Workshop](http://netdevconf.org/1.2/session.html?jesper-performance-workshop) - Additional hints about XDP internals and expected evolution. + - [XDP – eXpress Data Path, Used for DDoS protection](http://people.netfilter.org/hawk/presentations/OpenSourceDays2017/XDP_DDoS_protecting_osd2017.pdf) - Details and use cases about XDP, with benchmark results, and code snippets for benchmarking as well as for basic DDoS protection with eBPF/XDP (based on an IP blacklisting scheme). + - [Memory vs. Networking, Provoking and fixing memory bottlenecks](http://people.netfilter.org/hawk/presentations/MM-summit2017/MM-summit2017-JesperBrouer.pdf) - Advanced details about current memory issues faced by XDP developers. + - [XDP for the Rest of Us](http://netdevconf.org/2.1/session.html?gospodarek) - How to get started with eBPF and XDP for normal humans. Also summarized by Julia Evans on [her blog](http://jvns.ca/blog/2017/04/07/xdp-bpf-tutorial/). + - [XDP now with REDIRECT](http://people.netfilter.org/hawk/presentations/LLC2018/XDP_LLC2018_redirect.pdf) - Update on XDP, and in particular on the redirect actions. - [XDP workshop -- Introduction, experience, and future development (Video)](http://netdevconf.org/1.2/session.html?herbert-xdp-workshop) -- [High Speed Packet Filtering on Linux](https://cdn.shopify.com/s/files/1/0177/9886/files/phv2017-gbertin.pdf) - 关于Linux上的数据包过滤、DDoS防护、内核中的数据包处理、内核旁路、XDP和eBPF. -- [How to drop 10 million packets per second](https://blog.cloudflare.com/how-to-drop-10-million-packets/) - Cloudflare 的博客文章谈论他们转向使用 XDP 进行数据包过滤. +- [High Speed Packet Filtering on Linux](https://cdn.shopify.com/s/files/1/0177/9886/files/phv2017-gbertin.pdf) - About packet filtering on Linux, DDoS protection, packet processing in the kernel, kernel bypass, XDP and eBPF. +- [How to drop 10 million packets per second](https://blog.cloudflare.com/how-to-drop-10-million-packets/) - Cloudflare's blog post talking about their move to using XDP for packet filtering. ### AF_XDP -- [AF_XDP](https://www.kernel.org/doc/html/latest/networking/af_xdp.html) - AF_XDP 地址族的内核文档. +- [AF_XDP](https://www.kernel.org/doc/html/latest/networking/af_xdp.html) - Kernel documentation on the AF_XDP address family. - [Fast Packet Processing in Linux with AF_XDP](https://archive.fosdem.org/2018/schedule/event/af_xdp/) ### bpfilter -- [Why is the kernel community replacing iptables with BPF?](https://cilium.io/blog/2018/04/17/why-is-the-kernel-community-replacing-iptables/) - Cilium 发表的一篇关于 eBPF 和 bpfilter 背后动机的博客文章,其中包含几个示例以及使用 eBPF 和 bpfilter 的其他项目的链接. -- [bpfilter: Linux firewall with eBPF sauce](https://qmo.fr/docs/talk_20180316_frnog_bpfilter.pdf) - 幻灯片来自 Quentin Monnet 的演讲,内容涉及 eBPF 背景并将 bpfilter 与 iptables 进行比较. +- [Why is the kernel community replacing iptables with BPF?](https://cilium.io/blog/2018/04/17/why-is-the-kernel-community-replacing-iptables/) - A blog post by Cilium on the the motivations behind eBPF and bpfilter, with a couple examples and links to other projects using eBPF and bpfilter. +- [bpfilter: Linux firewall with eBPF sauce](https://qmo.fr/docs/talk_20180316_frnog_bpfilter.pdf) - Slides from a talk by Quentin Monnet with a background on eBPF and comparing bpfilter to iptables. ### BTF -- [BPF Type Format (BTF)](https://www.kernel.org/doc/html/latest/bpf/btf.html) - 关于 BTF 的内核文档,解释如何使用它. -- [Enhancing the Linux kernel with BTF type information](https://facebookmicrosites.github.io/bpf/blog/2018/11/14/btf-enhancement.html) - 描述使用 BTF 为 BPF 程序提供调试信息所做的工作. +- [BPF Type Format (BTF)](https://www.kernel.org/doc/html/latest/bpf/btf.html) - Kernel documentation about BTF, explaining how to use it. +- [Enhancing the Linux kernel with BTF type information](https://facebookmicrosites.github.io/bpf/blog/2018/11/14/btf-enhancement.html) - A description of the work done with BTF to provide debugging information for BPF programs. ### cBPF -- [The BSD Packet Filter: A New Architecture for User-level Packet Capture](http://www.tcpdump.org/papers/bpf-usenix93.pdf) - 关于(经典)BPF 的原始论文. +- [The BSD Packet Filter: A New Architecture for User-level Packet Capture](http://www.tcpdump.org/papers/bpf-usenix93.pdf) - The original paper about (classic) BPF. - [The FreeBSD manual page about BPF](https://www.freebsd.org/cgi/man.cgi?query=bpf&sektion=4) - [Linux' packet mmap(2), BPF, and Netsniff-NG](http://borkmann.ch/talks/2013_devconf.pdf) - [tc and cls bpf: lightweight packet classifying with BPF](http://borkmann.ch/talks/2014_devconf.pdf) -- [Introducing Cloudflare's BPF Tools](https://blog.cloudflare.com/introducing-the-bpf-tools/) - 将 BPF 字节码与 iptables 的“xt_bpf”模块一起使用. +- [Introducing Cloudflare's BPF Tools](https://blog.cloudflare.com/introducing-the-bpf-tools/) - Usage of BPF bytecode with the `xt_bpf` module for iptables. - [Libpcap filters syntax](http://biot.com/capstats/bpf.html) ### Hardware Offload -- [eBPF/XDP hardware offload to SmartNICs](http://netdevconf.org/1.2/session.html?jakub-kicinski) - 由 Netronome 引入的带有 TC 或 XDP(Linux 内核 4.9+)的 eBPF 硬件卸载. -- [Comprehensive XDP offload---Handling the edge cases](https://www.netdevconf.org/2.2/session.html?viljoen-xdpoffload-talk) - 上述主题的更新. -- [hBPF - eBPF in hardware](https://github.com/rprinz08/hBPF) - 为 FPGA 编写的 eBPF CPU. -- [OpenCSD eBPF SSD offloading](https://github.com/Dantali0n/qemu-csd) - 计算存储模拟 (QEMU) 平台,具有适用于分区命名空间 NVMe SSD 的 FUSE LFS 文件系统,使用 uBPF 进行计算内核卸载,全部在用户空间中. +- [eBPF/XDP hardware offload to SmartNICs](http://netdevconf.org/1.2/session.html?jakub-kicinski) - Hardware offload for eBPF with TC or XDP (Linux kernel 4.9+), introduced by Netronome. +- [Comprehensive XDP offload---Handling the edge cases](https://www.netdevconf.org/2.2/session.html?viljoen-xdpoffload-talk) - An update on the topic above. +- [hBPF - eBPF in hardware](https://github.com/rprinz08/hBPF) - An eBPF CPU written for FPGAs. +- [OpenCSD eBPF SSD offloading](https://github.com/Dantali0n/qemu-csd) - Computational Storage simulation (QEMU) platform with FUSE LFS filesystem for Zoned Namespaces NVMe SSDs using uBPF for compute kernel offloading, all in userspace. ## Tutorials -- [bcc Reference Guide](https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md) - 开始使用密件抄送和 eBPF 的许多增量步骤,主要集中在跟踪和监控上. -- [bcc Python Developer Tutorial](https://github.com/iovisor/bcc/blob/master/docs/tutorial_bcc_python_developer.md) - 附带密件抄送,但针对十七个“课程”中的 Python 部分. -- [Building BPF applications with libbpf-bootstrap](https://nakryiko.com/posts/libbpf-bootstrap/) - 帮助生成最小或高级模板来引导您自己的应用程序(地图和程序的内核端和用户空间管理),具有 CO-RE、全局变量和环形缓冲区等功能. -- [How I ended up writing opensnoop in pure C using eBPF](https://bolinfest.github.io/opensnoop-native/) - 全面介绍如何编写 eBPF 程序,首先仅使用 bpf() 系统调用,然后使用 libbpf 库,并提供可重现的代码示例. -- [Linux Tracing Workshops Materials](https://github.com/goldshtn/linux-tracing-workshop) - 涉及使用多个 BPF 工具进行跟踪. -- [Tracing a packet journey using Linux tracepoints, perf and eBPF](https://blog.yadutaf.fr/2017/07/28/tracing-a-packet-journey-using-linux-tracepoints-perf-ebpf/) - 使用 perf 和 bcc 程序对 ping 请求和回复进行故障排除. -- [Open NFP platform](https://open-nfp.org/dataplanes-ebpf/technical-papers/) - 由 Netronome 运营:一些与网络相关的 eBPF 使用案例的教程,包括 eBPF 卸载入门指南. -- [XDP for the Rest of Us](http://netdevconf.org/2.1/session.html?gospodarek) - 第一版 XDP 入门研讨会. -- [XDP for the Rest of Us](https://www.netdevconf.org/2.2/session.html?gospodarek-xdp-workshop) - 第二版,有新内容. +- [bcc Reference Guide](https://github.com/iovisor/bcc/blob/master/docs/reference_guide.md) - Many incremental steps to start using bcc and eBPF, mostly centered on tracing and monitoring. +- [bcc Python Developer Tutorial](https://github.com/iovisor/bcc/blob/master/docs/tutorial_bcc_python_developer.md) - Comes with bcc, but targets the Python bits across seventeen "lessons". +- [Building BPF applications with libbpf-bootstrap](https://nakryiko.com/posts/libbpf-bootstrap/) - Helps generate minimal or advanced templates to bootstrap your own applications (kernel side and user space management for maps and programs) with features like CO-RE, global variables, and ring buffer. +- [How I ended up writing opensnoop in pure C using eBPF](https://bolinfest.github.io/opensnoop-native/) - A thorough walk-through of how to write eBPF programs, first using only bpf() syscall, and then libbpf library, with reproducible code examples. +- [Linux Tracing Workshops Materials](https://github.com/goldshtn/linux-tracing-workshop) - Involves the use of several BPF tools for tracing. +- [Tracing a packet journey using Linux tracepoints, perf and eBPF](https://blog.yadutaf.fr/2017/07/28/tracing-a-packet-journey-using-linux-tracepoints-perf-ebpf/) - Troubleshooting ping requests and replies with perf and bcc programs. +- [Open NFP platform](https://open-nfp.org/dataplanes-ebpf/technical-papers/) - Operated by Netronome: some tutorials for network-related eBPF use cases, including an eBPF Offload Starting Guide. +- [XDP for the Rest of Us](http://netdevconf.org/2.1/session.html?gospodarek) - First edition of a workshop to get started with XDP. +- [XDP for the Rest of Us](https://www.netdevconf.org/2.2/session.html?gospodarek-xdp-workshop) - Second edition, with new contents. - [Load XDP programs using the ip (iproute2) command](https://medium.com/@fntlnz/load-xdp-programs-using-the-ip-iproute2-command-502043898263) - [XDP Hands-On Tutorial](https://github.com/xdp-project/xdp-tutorial) - A progressive (three levels of difficulty) tutorial to learn how to process packets with XDP. -- [All your tracing are belong to BPF](https://blog.trailofbits.com/2021/11/09/all-your-tracing-are-belong-to-bpf/) - 将 C++ 应用程序中的跟踪功能与 LLVM 库集成的分步演练. -- [Firewalling with BPF/XDP: Examples and Deep Dive](https://arthurchiao.art/blog/firewalling-with-bpf-xdp/) - 使用 TC 和 XDP 构建基本防火墙的简单指南. -- [A Deep Dive into eBPF: Writing an Efficient DNS Monitoring.](https://medium.com/@nurkholish.halim/a-deep-dive-into-ebpf-writing-an-efficient-dns-monitoring-2c9dea92abdf) - 详细解释了用于在套接字过滤层捕获 DNS 请求的方法. +- [All your tracing are belong to BPF](https://blog.trailofbits.com/2021/11/09/all-your-tracing-are-belong-to-bpf/) - A step-by-step walkthrough to integrate tracing capabilities in your C++ applications with the LLVM libraries. +- [Firewalling with BPF/XDP: Examples and Deep Dive](https://arthurchiao.art/blog/firewalling-with-bpf-xdp/) - A simple guide to build basic firewalls with TC and XDP. +- [A Deep Dive into eBPF: Writing an Efficient DNS Monitoring.](https://medium.com/@nurkholish.halim/a-deep-dive-into-ebpf-writing-an-efficient-dns-monitoring-2c9dea92abdf) - A detailed explanation of methods used to capture DNS requests at the socket filter layer. +- [eBPF Developer Tutorial - Learn eBPF by examples](https://eunomia.dev/tutorials/) - Start with eBPF basics and progress to advanced topics using 20+ hands-on tutorials and examples. Covers performance, networking, and security with libbpf and CO-RE. Available in Chinese and English. ## Examples -- [linux/samples/bpf/](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/samples/bpf) - 在内核树中:一些示例 eBPF 程序. -- [linux/tools/testing/selftests/bpf](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/bpf) - 在内核树中:Linux BPF 自测试,包含许多 eBPF 程序. -- [prototype-kernel/kernel/samples/bpf](https://github.com/netoptimizer/prototype-kernel/tree/master/kernel/samples/bpf) - Jesper Dangaard Brouer 的原型内核存储库包含一些可以在内核基础结构之外进行编译的其他示例. -- [iproute2/examples/bpf/](https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/tree/examples/bpf) - 一些连接到 TC 接口的网络程序. -- [Netronome sample network applications](https://github.com/Netronome/bpf-samples/) - 提供基本但完整的 eBPF 应用程序示例,也与硬件卸载兼容. -- [bcc/examples](https://github.com/iovisor/bcc/tree/master/examples) - 密件抄送工具附带的示例,主要是关于跟踪. -- [bcc/tools](https://github.com/iovisor/bcc/tree/master/tools) - 这些工具本身可以被视为 BPF 程序的示例用例,主要用于跟踪和监控. bcc 工具已针对某些 Linux 发行版进行了打包. -- [MPLSinIP sample](https://github.com/fzakaria/eBPF-mpls-encap-decap) - 一个广受好评的示例,演示如何在 IP 内封装和解封装 MPLS. 该代码为 BPF 开发新手提供了注释. -- [ebpf-samples](https://github.com/vbpf/ebpf-samples) - 从多个项目收集的已编译(作为 ELF 目标文件)样本的集合,主要用作用户空间验证程序的测试用例. -- [ebpf-kill-example](https://github.com/niclashedam/ebpf-kill-example) - eBPF 探针的完整记录和测试示例,记录所有强制终止并将其打印在用户空间中. -- [redbpf examples](https://github.com/foniod/redbpf/tree/main/examples) - 使用 RedBPF 在 Rust 中编写 eBPF 程序的示例程序. +- [linux/samples/bpf/](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/samples/bpf) - In the kernel tree: some sample eBPF programs. +- [linux/tools/testing/selftests/bpf](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/testing/selftests/bpf) - In the kernel tree: Linux BPF selftests, with many eBPF programs. +- [prototype-kernel/kernel/samples/bpf](https://github.com/netoptimizer/prototype-kernel/tree/master/kernel/samples/bpf) - Jesper Dangaard Brouer's prototype-kernel repository contains some additional examples that can be compiled outside of kernel infrastructure. +- [iproute2/examples/bpf/](https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git/tree/examples/bpf) - Some networking programs to attach to the TC interface. +- [Netronome sample network applications](https://github.com/Netronome/bpf-samples/) - Provides basic but complete examples of eBPF applications also compatible with hardware offload. +- [bcc/examples](https://github.com/iovisor/bcc/tree/master/examples) - Examples coming along with the bcc tools, mostly about tracing. +- [bcc/tools](https://github.com/iovisor/bcc/tree/master/tools) - These tools themselves can be seen as example use cases for BPF programs, mostly for tracing and monitoring. bcc tools have been packaged for some Linux distributions. +- [MPLSinIP sample](https://github.com/fzakaria/eBPF-mpls-encap-decap) - A heavily commented sample demonstrating how to encapsulate & decapsulate MPLS within IP. The code is commented for those new to BPF development. +- [ebpf-samples](https://github.com/vbpf/ebpf-samples) - A collection of compiled (as ELF object files) samples gathered from several projects, primarily intended to serve as test cases for user space verifiers. +- [ebpf-kill-example](https://github.com/niclashedam/ebpf-kill-example) - A fully documented and tested example of an eBPF probe that logs all force-kills and prints them out in user-space. +- [redbpf examples](https://github.com/foniod/redbpf/tree/main/examples) - Example programs for using RedBPF to write eBPF programs in Rust. ## eBPF Workflow: Tools and Utilities ### bcc -- [bcc](https://github.com/iovisor/bcc/) - 框架和工具集 - 处理 BPF 程序的一种方法,特别是用于跟踪和监视. 还包括一些可以帮助检查系统上的地图或程序的实用程序. -- [Lua front-end for BCC](https://github.com/iovisor/bcc/tree/master/src/lua) - C 的另一种替代方案,甚至是 bcc 中使用的大多数 Python 代码的另一种替代方案. +- [bcc](https://github.com/iovisor/bcc/) - Framework and set of tools - One way to handle BPF programs, in particular for tracing and monitoring. Also includes some utilities that may help inspect maps or programs on the system. +- [Lua front-end for BCC](https://github.com/iovisor/bcc/tree/master/src/lua) - Another alternative to C, and even to most of the Python code used in bcc. ### iproute2 -- [iproute2](https://git.kernel.org/pub/scm/network/iproute2/iproute2.git) - 包含 Linux 上网络管理工具的软件包. 特别是,它包含用于管理 eBPF 过滤器和操作的“tc”,以及用于管理 XDP 程序的“ip”. 大部分与BPF相关的代码都在lib/bpf.c中. -- [iproute2-next](https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git) - 开发树,与net-next同步. +- [iproute2](https://git.kernel.org/pub/scm/network/iproute2/iproute2.git) - Package containing tools for network management on Linux. In particular, it contains `tc`, used to manage eBPF filters and actions, and `ip`, used to manage XDP programs. Most of the code related to BPF is in lib/bpf.c. +- [iproute2-next](https://git.kernel.org/pub/scm/network/iproute2/iproute2-next.git) - The development tree, synchronised with net-next. ### LLVM -- [LLVM](https://llvm.org/) - 包含 eBPF 工作流程中使用的多个工具. 可以从以下位置检索 Ubuntu/Debian 最新版本的快照 [here](http://apt.llvm.org/). +- [LLVM](https://llvm.org/) - Contains several tools used in eBPF workflows. Snapshots of the latest versions for Ubuntu/Debian can be retrieved from [here](http://apt.llvm.org/). - - clang 用于将 C 编译为 ELF 格式的 eBPF 目标文件(clang v3.7.1+). BPF 后端添加了 [this commit](https://reviews.llvm.org/D6494). - - llvm-objdump 用于以人类可读的格式转储目标文件的内容,可能带有初始 C 源代码 (llvm-objdump v4.0+). - - llvm-mc 用于从 LLVM 中间表示编译为 eBPF 目标文件,以便可以从 C 编译为 eBPF 程序集,修补程序集,然后编译为 ELF 文件. + - clang is used to compile C to eBPF object file under the ELF format (clang v3.7.1+). The BPF backend was added with [this commit](https://reviews.llvm.org/D6494). + - llvm-objdump is used to dump the content of an object file in human-readable format, possibly with the initial C source code (llvm-objdump v4.0+). + - llvm-mc is used to compile from LLVM intermediate representation to eBPF object file, so that one can compile from C to eBPF assembly, tinker with assembly, then compile to ELF file. ### libbpf -- [libbpf](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/tools/lib/bpf) - AC 库用于处理 BPF 对象(程序和映射),并操作包含它们的 ELF 对象文件. 它随内核一起提供,并且 [mirrored on GitHub](https://github.com/libbpf/libbpf). -- [libbpf-bootstrap](https://github.com/libbpf/libbpf-bootstrap) - 使用 libbpf 和 BPF CO-RE 进行 BPF 应用程序开发的脚手架. +- [libbpf](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/tools/lib/bpf) - A C library used for handling BPF objects (programs and maps), and manipulating ELF object files containing them. It is shipped with the kernel and [mirrored on GitHub](https://github.com/libbpf/libbpf). +- [libbpf-bootstrap](https://github.com/libbpf/libbpf-bootstrap) - Scaffolding for BPF application development with libbpf and BPF CO-RE. ### Go libraries -- [cilium/ebpf](https://github.com/cilium/ebpf) - Pure-Go 库,用于读取、修改和加载 eBPF 程序并将它们附加到 Linux 内核中的各种挂钩. -- [libbpfgo](https://github.com/aquasecurity/libbpfgo) - Go 的 eBPF 库,由 libbpf 提供支持. -- [gobpf](https://github.com/iovisor/gobpf) - 用于 BCC 的 Go 绑定,用于创建 eBPF 程序. +- [cilium/ebpf](https://github.com/cilium/ebpf) - Pure-Go library to read, modify and load eBPF programs and attach them to various hooks in the Linux kernel. +- [libbpfgo](https://github.com/aquasecurity/libbpfgo) - eBPF library for Go, powered by libbpf. +- [gobpf](https://github.com/iovisor/gobpf) - Go bindings for BCC for creating eBPF programs. ### Aya -- [aya](https://github.com/aya-rs/aya) - 一个纯 Rust 库,用于编写、加载和管理 eBPF 对象,重点关注开发人员体验和可操作性. 它支持用 Rust 编写 eBPF 程序,并通过 crates.io 分发库代码以在 eBPF 程序之间共享. Aya 不依赖于 libbpf. -- [aya-template](https://github.com/aya-rs/aya-template) - 在 Aya 中编写 BPF 应用程序的模板,可与 [`cargo generate`](https://github.com/cargo-generate/cargo-generate). +- [aya](https://github.com/aya-rs/aya) - A pure Rust library for writing, loading, and managing eBPF objects, with a focus on developer experience and operability. It supports writing eBPF programs in Rust and distributing library code over crates.io to share it between eBPF programs. Aya does not depend on libbpf. +- [aya-template](https://github.com/aya-rs/aya-template) - Templates for writing BPF applications in Aya that can be used with [`cargo generate`](https://github.com/cargo-generate/cargo-generate). ### zbpf -- [zbpf](https://github.com/tw4452852/zbpf) - 用于编写跨平台 eBPF 程序的纯 Zig 框架,由 libbpf 和 Zig 工具链提供支持. +- [zbpf](https://github.com/tw4452852/zbpf) - A pure Zig framework for writing cross platform eBPF programs, powered by libbpf and Zig toolchain. ### eunomia-bpf -- [eunomia-bpf](https://github.com/eunomia-bpf/eunomia-bpf) - 编译框架和运行时库,用于以多种语言和 WebAssembly 构建、分发、动态加载和运行 CO-RE eBPF 应用程序. 它支持仅编写 eBPF 内核代码(构建简单的 CO-RE libbpf eBPF 应用程序),以 BCC 和 libbpf 风格编写内核部分,以及在 WASM 模块中以多种语言编写用户空间并使用简单的 JSON 数据或 WASM OCI 进行分发图片. 运行时仅基于libbpf,为BCC风格的eBPF程序提供CO-RE,而不依赖于LLVM库. +- [eunomia-bpf](https://github.com/eunomia-bpf/eunomia-bpf) - A compilation framework and runtime library to build, distribute, dynamically load, and run CO-RE eBPF applications in multiple languages and WebAssembly. It supports writing eBPF kernel code only (to build simple CO-RE libbpf eBPF applications), writing the kernel part in both BCC and libbpf styles, and writing userspace in multiple languages in a WASM module and distributing it with simple JSON data or WASM OCI images. The runtime is based on libbpf only and provides CO-RE to BCC-style eBPF programs without depending on the LLVM library. ### oxidebpf -- [oxidebpf](https://github.com/redcanaryco/oxidebpf) - 用于管理 eBPF 程序的纯 Rust 库,专为安全用例而设计. 该功能集比其他库更受限制,但强调在各种内核和向后兼容的一次编译、运行最多的地方的稳定性. +- [oxidebpf](https://github.com/redcanaryco/oxidebpf) - A pure Rust library for managing eBPF programs, designed for security use cases. The featureset is more limited than other libraries but emphasizes stability across a wide range of kernels and backwards-compatible compile-once-run-most-places. ### bpftool and Other Tools from the Kernel Tree -- [bpftool](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpftool) - 还有内核树中的一些其他工具,位于 [linux/tools/net/](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/net?h=v4.14) 对于 4.15 之前的版本,或者 [linux/tools/bpf/](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/tools/bpf) 在那之后: +- [bpftool](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpftool) - Also some other tools in the kernel tree, under [linux/tools/net/](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/tools/net?h=v4.14) for versions earlier than 4.15, or [linux/tools/bpf/](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/tools/bpf) after that: - - [`bpftool`](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpftool) - 一个通用实用程序,可用于与用户空间中的 eBPF 程序和映射进行交互,例如显示、转储、加载、反汇编、固定程序,或显示、创建、固定、更新、删除映射,或附加和分离到 cgroup 的程序. - - [`bpf_asm`](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_asm.c) - 一个最小的 cBPF 汇编器. - - [`bpf_dbg`](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_dbg.c) - cBPF 程序的小型调试器. - - [`bpf_jit_disasm`](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_jit_disasm.c) - 两种 BPF 风格的反汇编器,对于 JIT 调试非常有用. + - [`bpftool`](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpftool) - A generic utility that can be used to interact with eBPF programs and maps from userspace, for example to show, dump, load, disassemble, pin programs, or to show, create, pin, update, delete maps, or to attach and detach programs to cgroups. + - [`bpf_asm`](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_asm.c) - A minimal cBPF assembler. + - [`bpf_dbg`](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_dbg.c) - A small debugger for cBPF programs. + - [`bpf_jit_disasm`](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/tree/tools/bpf/bpf_jit_disasm.c) - A disassembler for both BPF flavors and could be highly useful for JIT debugging. ### User Space eBPF -- [uBPF](https://github.com/iovisor/ubpf/) - 用 C 语言编写.包含一个解释器、一个用于 x86_64 架构的 JIT 编译器、一个汇编器和一个反汇编器. -- [A generic implementation](https://github.com/YutaroHayakawa/generic-ebpf) - 支持 FreeBSD 内核、FreeBSD 用户空间、Linux 内核、Linux 用户空间和 macOS 用户空间. 用于 [VALE software switch](https://www.unix.com/man-page/freebsd/4/vale/)'s [BPF extension module](https://github.com/YutaroHayakawa/vale-bpf). -- [rbpf](https://github.com/qmonnet/rbpf) - 用 Rust 编写. 适用于 Linux、macOS 和 Windows 的解释器,以及适用于 Linux 下 x86_64 的 JIT 编译器. -- [PREVAIL](https://github.com/vbpf/ebpf-verifier) - eBPF 的用户空间验证器 [using an abstract interpretation layer](https://elazarg.github.io/pldi19main-final.pdf),支持循环. -- [oster](https://github.com/grantseltzer/oster) - 用 Go 编写. 一种通过将 eBPF 附加到 uprobes 来跟踪 Go 程序执行的工具. -- [wachy](https://rubrikinc.github.io/wachy/) - 跟踪分析器,旨在使基于 eBPF uprobe 的调试更易于使用. 这是通过在源代码旁边的 UI 中显示跟踪并允许交互式深入分析来完成的. +- [uBPF](https://github.com/iovisor/ubpf/) - Written in C. Contains an interpreter, a JIT compiler for x86_64 architecture, an assembler and a disassembler. +- [A generic implementation](https://github.com/YutaroHayakawa/generic-ebpf) - With support for FreeBSD kernel, FreeBSD user space, Linux kernel, Linux user space and macOS user space. Used for the [VALE software switch](https://www.unix.com/man-page/freebsd/4/vale/)'s [BPF extension module](https://github.com/YutaroHayakawa/vale-bpf). +- [rbpf](https://github.com/qmonnet/rbpf) - Written in Rust. Interpreter for Linux, macOS and Windows, and JIT-compiler for x86_64 under Linux. +- [PREVAIL](https://github.com/vbpf/ebpf-verifier) - A user space verifier for eBPF [using an abstract interpretation layer](https://elazarg.github.io/pldi19main-final.pdf), with support for loops. +- [oster](https://github.com/grantseltzer/oster) - Written in Go. A tool for tracing execution of Go programs by attaching eBPF to uprobes. +- [wachy](https://rubrikinc.github.io/wachy/) - A tracing profiler that aims to make eBPF uprobe-based debugging easier to use. This is done by displaying traces in a UI next to the source code and allowing interactive drilldown analysis. ### eBPF on Other Platforms -- [eBPF for Windows](https://github.com/microsoft/ebpf-for-windows) - 该项目是一个正在进行的工作,允许在 Windows 之上使用 Linux 生态系统中熟悉的现有 eBPF 工具链和 API. +- [eBPF for Windows](https://github.com/microsoft/ebpf-for-windows) - This project is a work-in-progress that allows using existing eBPF toolchains and APIs familiar in the Linux ecosystem to be used on top of Windows. ### Testing in Virtual Environments -- [A Vagrant setup](https://github.com/iovisor/xdp-vagrant) - 轻松测试XDP. 现在通用 XDP(独立于驱动程序,主要用于测试)存在,用处不大. +- [A Vagrant setup](https://github.com/iovisor/xdp-vagrant) - To easily test XDP. Less useful now that generic XDP (driver-independant, mostly for testing) exists. - [bcc in a Docker container](https://github.com/zlim/bcc-docker) ## Projects Related to eBPF ### Networking -- P4与eBPF有一些交互: +- P4 has some interactions with eBPF: - - [P4 on the Edge](https://schd.ws/hosted_files/2016p4workshop/1d/Intel%20Fastabend-P4%20on%20the%20Edge.pdf) - P4 与 eBPF 一起创建高性能可编程交换机. - - [OvS Orbit episode (#11), called P4 on the Edge](https://ovsorbit.org/#e11) - 与前一项相关. Open vSwitch 核心维护者之一 Ben Pfaff 对 John Fastabend 的音频采访. - - [P4, EBPF and Linux TC Offload](https://open-nfp.org/m/documents/Open_NFP_P4_EBPF_Linux_TC_Offload_FINAL_5JHLETS.pdf) - P4 具有一些与 Netronome 的 NFP(网络流处理器)架构上的 eBPF 硬件卸载相关的元素. - - [Old documentation for P4 usage with eBPF](https://github.com/iovisor/bcc/tree/master/src/cc/frontends/p4) - 来自密件抄送存储库; 已被下面链接的 P4_16 后端弃用. + - [P4 on the Edge](https://schd.ws/hosted_files/2016p4workshop/1d/Intel%20Fastabend-P4%20on%20the%20Edge.pdf) - P4 with eBPF to create high-performance programmable switches. + - [OvS Orbit episode (#11), called P4 on the Edge](https://ovsorbit.org/#e11) - Related to the former item. Audio interview of John Fastabend by Ben Pfaff, one of the core maintainers of Open vSwitch. + - [P4, EBPF and Linux TC Offload](https://open-nfp.org/m/documents/Open_NFP_P4_EBPF_Linux_TC_Offload_FINAL_5JHLETS.pdf) - P4 with some elements related to eBPF hardware offload on Netronome's NFP (Network Flow Processor) architecture. + - [Old documentation for P4 usage with eBPF](https://github.com/iovisor/bcc/tree/master/src/cc/frontends/p4) - From bcc repository; deprecated by the P4_16 backend linked below. - [P4_16 backend for eBPF](https://github.com/p4lang/p4c/blob/master/backends/ebpf/README.md) -- [Cilium](https://cilium.io/) 项目 ([GitHub repository](https://github.com/cilium/cilium) )是一项依赖 BPF 和 XDP 的技术,为基于动态生成的 eBPF 程序的容器提供“快速的内核网络和安全策略实施”. 许多演示文稿可用(有重叠): +- [Cilium](https://cilium.io/) project ([GitHub repository](https://github.com/cilium/cilium)) is a technology relying on BPF and XDP to provide "fast in-kernel networking and security policy enforcement for containers based on eBPF programs generated on the fly". Many presentations available (with overlap): - - [Cilium: Networking & Security for Containers with BPF & XDP](http://www.slideshare.net/ThomasGraf5/clium-container-networking-with-bpf-xdp) - 还具有负载均衡器用例 + - [Cilium: Networking & Security for Containers with BPF & XDP](http://www.slideshare.net/ThomasGraf5/clium-container-networking-with-bpf-xdp) - Also featuring a load balancer use case - [Cilium: Networking & Security for Containers with BPF & XDP](http://www.slideshare.net/Docker/cilium-bpf-xdp-for-containers-66969823) - [video](https://www.youtube.com/watch?v=TnJF7ht3ZYc&list=PLkA60AVN3hh8oPas3cq2VA9xB7WazcIgs) - [Cilium: Fast IPv6 container Networking with BPF and XDP](http://www.slideshare.net/ThomasGraf5/cilium-fast-ipv6-container-networking-with-bpf-and-xdp) - [Cilium: BPF & XDP for containers](https://fosdem.org/2017/schedule/event/cilium/) - - [OvS Orbit episode (#4)](https://ovsorbit.benpfaff.org/) - 本·普法夫 (Ben Pfaff) 对托马斯·格拉夫 (Thomas Graf) 的采访. + - [OvS Orbit episode (#4)](https://ovsorbit.benpfaff.org/) - Interview of Thomas Graf by Ben Pfaff. - [A generic introduction to Cilium](https://opensource.googleblog.com/2016/11/cilium-networking-and-security.html) - - [A podcast interviewing Thomas Graf](http://blog.ipspace.net/2016/10/fast-linux-packet-forwarding-with.html) - Ivan Pepelnjak 于 2016 年 10 月就 eBPF、P4、XDP 和 Cilium 采访 Thomas. + - [A podcast interviewing Thomas Graf](http://blog.ipspace.net/2016/10/fast-linux-packet-forwarding-with.html) - Ivan Pepelnjak interviewing Thomas, October 2016, on eBPF, P4, XDP and Cilium. -- Open vSwitch (OvS) 及其相关项目开放虚拟网络(OVN,一种开源网络虚拟化解决方案)正在考虑在各个级别使用 eBPF: +- Open vSwitch (OvS), and its related project Open Virtual Network (OVN, an open source network virtualization solution) are considering using eBPF at various level: - [Offloading OVS Flow Processing using eBPF](http://openvswitch.org/support/ovscon2016/7/1120-tu.pdf) - [Coupling the Flexibility of OVN with the Efficiency of IOVisor](http://openvswitch.org/support/ovscon2016/7/1245-bertrone.pdf) -- [Katran](https://code.fb.com/open-source/open-sourcing-katran-a-scalable-network-load-balancer/) - 基于 XDP 的第 4 层负载均衡器,由 Facebook 开源. -- [XDP in practice: integrating XDP in our DDoS mitigation pipeline](http://netdevconf.org/2.1/session.html?bertin) - Cloudflare 中使用 XDP 防御 DDoS. -- [Droplet: DDoS countermeasures powered by BPF + XDP](http://netdevconf.org/2.1/session.html?zhou) - 在 Facebook 上使用 XDP 防御 DDoS. +- [Katran](https://code.fb.com/open-source/open-sourcing-katran-a-scalable-network-load-balancer/) - A layer 4 load-balancer based on XDP, open-sourced by Facebook. +- [XDP in practice: integrating XDP in our DDoS mitigation pipeline](http://netdevconf.org/2.1/session.html?bertin) - Protection against DDoS with XDP at Cloudflare. +- [Droplet: DDoS countermeasures powered by BPF + XDP](http://netdevconf.org/2.1/session.html?zhou) - Protection against DDoS with XDP at Facebook. - [DPDK has a poll-mode driver (PMD) based on AF_XDP](https://dpdkuserspace2018.sched.com/event/G45Z/dpdk-pmd-for-afxdp) -- [CETH for XDP](http://www.slideshare.net/IOVisor/ceth-for-xdp-linux-meetup-santa-clara-july-2016) - 用于更快网络 I/O 的通用以太网驱动程序框架,这是由 Mellanox 发起的技术. -- Suricata,一个开源入侵检测系统, [relies on eBPF components](https://www.stamus-networks.com/2016/09/28/suricata-bypass-feature/) 其“捕获旁路”功能: +- [CETH for XDP](http://www.slideshare.net/IOVisor/ceth-for-xdp-linux-meetup-santa-clara-july-2016) - Common Ethernet Driver Framework for faster network I/O, a technology initiated by Mellanox. +- Suricata, an open source intrusion detection system, [relies on eBPF components](https://www.stamus-networks.com/2016/09/28/suricata-bypass-feature/) for its "capture bypass" features: - ["eBPF and XDP" section of Suricata documentation](http://suricata.readthedocs.io/en/latest/capture-hardware/ebpf-xdp.html?highlight=XDP#ebpf-and-xdp) - - [SEPTun-Mark-II](https://github.com/pevma/SEPTun-Mark-II) - 极限性能调优指南 - Mark II. + - [SEPTun-Mark-II](https://github.com/pevma/SEPTun-Mark-II) - Extreme Performance Tuning guide - Mark II. - [A blog post introducing the feature](https://www.stamus-networks.com/2016/09/28/suricata-bypass-feature/) - [The adventures of a Suricate in eBPF land](http://netdevconf.org/1.2/slides/oct6/10_suricata_ebpf.pdf) - [eBPF and XDP seen from the eyes of a meerkat](https://www.slideshare.net/ennael/kernel-recipes-2017-ebpf-and-xdp-eric-leblond) -- [Project Calico](https://projectcalico.docs.tigera.io/about/about-calico) - Calico 是一个开源网络和网络安全解决方案,适用于容器、虚拟机和基于本机主机的工作负载. Calico 的 eBPF 数据平面提供低延迟、高吞吐量的数据平面以及丰富的网络安全策略模型. +- [Project Calico](https://projectcalico.docs.tigera.io/about/about-calico) - Calico is an open source networking and network security solution for containers, virtual machines, and native host-based workloads. Calico's eBPF data plane delivers a low latency, high throughput data plane with a rich network security policy model. - [Enabling eBPF data plane with Calico](https://projectcalico.docs.tigera.io/maintenance/ebpf/enabling-bpf) -- [merbridge](https://github.com/merbridge/merbridge/) - 使用 eBPF 来加速您的服务网格. Merbridge 用 eBPF 替换 iptables 规则来拦截流量. 它还结合了 msg_redirect,通过缩短 sidecar 和服务之间的数据路径来减少延迟. +- [merbridge](https://github.com/merbridge/merbridge/) - Use eBPF to speed up your Service Mesh. Merbridge replaces iptables rules with eBPF to intercept traffic. It also combines msg_redirect to reduce latency with a shortened datapath between sidecars and services. ### Observability - [InKeV: In-Kernel Distributed Network Virtualization for DCN](https://github.com/iovisor/bpf-docs/blob/master/university/sigcomm-ccr-InKev-2016.pdf) -- [DEEP-mon](https://www.slideshare.net/necstlab/deepmon-dynamic-and-energy-efficient-power-monitoring-for-containerbased-infrastructures) - 帮助测量服务器的功耗并使用 eBPF 程序进行内核内数据聚合. -- [pixie](https://github.com/pixie-io/pixie) - 使用 eBPF 的 Kubernetes 的可观察性. 功能包括协议跟踪、应用程序分析以及对分布式 bpftrace 部署的支持. -- [SkyWalking Rover](https://github.com/apache/skywalking-rover) - [Apache SkyWalking](https://skywalking.apache.org/) 是一个开源应用程序性能监控(APM)平台,专为具有微服务、云原生和基于容器(Kubernetes)架构的分布式系统而设计. SkyWalking Rover 是一个基于 eBPF 的分析器和指标收集器,适用于 C、C++、Golang 和 Rust 应用程序. -- [parca-agent](https://github.com/parca-dev/parca-agent) - 基于 eBPF 的始终在线连续分析器,用于分析 CPU 和内存使用情况,精确到行数和整个时间. -- [rbperf](https://github.com/javierhonduco/rbperf) - Ruby 的采样分析器和跟踪器. +- [DEEP-mon](https://www.slideshare.net/necstlab/deepmon-dynamic-and-energy-efficient-power-monitoring-for-containerbased-infrastructures) - Helps with measuring power consumption for servers and uses eBPF programs for in-kernel aggregation of data. +- [pixie](https://github.com/pixie-io/pixie) - Observability for Kubernetes using eBPF. Features include protocol tracing, application profiling, and support for distributed bpftrace deployments. +- [SkyWalking Rover](https://github.com/apache/skywalking-rover) - [Apache SkyWalking](https://skywalking.apache.org/) is an open-source Application Performance Monitoring (APM) platform specially designed for distributed systems with microservices, cloud-native and container-based (Kubernetes) architectures. SkyWalking Rover is an eBPF-based profiler and metrics collector for C, C++, Golang, and Rust applications. +- [parca-agent](https://github.com/parca-dev/parca-agent) - eBPF based always-on continuous profiler for analysis of CPU and memory usage, down to the line number and throughout time. +- [rbperf](https://github.com/javierhonduco/rbperf) - Sampling profiler and tracer for Ruby. - [Hubble](https://github.com/cilium/hubble) - Network, service and security observability for Kubernetes using eBPF. -- [Caretta](https://github.com/groundcover-com/caretta) - 由 eBPF 生成的即时 Kubernetes 服务依赖关系图,直接指向 Grafana 实例. +- [Caretta](https://github.com/groundcover-com/caretta) - Instant Kubernetes service dependency map generated by eBPF, right to a Grafana instance. ### Security -- [Falco](https://falco.org/) - 用作 Kubernetes 威胁检测引擎的云原生运行时安全项目. -- [Sysmon for Linux](https://github.com/Sysinternals/SysmonForLinux) - 安全监控工具. 这取决于 [SysinternalsEBPF](https://github.com/Sysinternals/SysinternalsEBPF). -- [Red Canary Linux Agent](https://redcanary.com/blog/ebpf-for-security) - Red Canary 已开始将 eBPF 合并到他们的 Linux 安全传感器中. -- [Tracee](https://github.com/aquasecurity/tracee) - 适用于 Linux 的运行时安全和取证工具,它使用 eBPF 技术在运行时跟踪系统和应用程序,并分析收集的事件以检测可疑的行为模式. -- [redcanary-ebpf-sensor](https://github.com/redcanaryco/redcanary-ebpf-sensor) - 一组 BPF 程序,用于从 Linux 内核收集安全相关事件数据. BPF 程序被组合成一个 ELF 文件,根据运行的操作系统和内核版本,可以有选择地加载各个探针. -- [bpflock - Lock Linux machines](https://github.com/linux-lock/bpflock) - eBPF 驱动的安全工具,用于锁定和审核 Linux 机器. -- [Tetragon](https://github.com/cilium/tetragon) - Kubernetes 感知、基于 eBPF 的安全可观察性和运行时执行. +- [Falco](https://falco.org/) - A cloud-native runtime security project used as a Kubernetes threat detection engine. +- [Sysmon for Linux](https://github.com/Sysinternals/SysmonForLinux) - A security monitoring tool. It depends on [SysinternalsEBPF](https://github.com/Sysinternals/SysinternalsEBPF). +- [Red Canary Linux Agent](https://redcanary.com/blog/ebpf-for-security) - Red Canary has started to incorporate eBPF to their Linux security sensor. +- [Tracee](https://github.com/aquasecurity/tracee) - A runtime security and forensics tool for Linux which uses eBPF technology to trace the system and applications at runtime, and analyze collected events to detect suspicious behavioral patterns. +- [redcanary-ebpf-sensor](https://github.com/redcanaryco/redcanary-ebpf-sensor) - A set of BPF programs that gather security relevant event data from the Linux kernel. The BPF programs are combined into a single ELF file from which individual probes can be selectively loaded, depending on the running operating system and kernel version. +- [bpflock - Lock Linux machines](https://github.com/linux-lock/bpflock) - An eBPF driven security tool for locking and auditing Linux machines. +- [Tetragon](https://github.com/cilium/tetragon) - Kubernetes-aware, eBPF-based security observability and runtime enforcement. ### Tools -- [ply](https://wkz.github.io/ply/) - 一个小型但灵活的 Linux 开源动态跟踪器,具有与 bcc 工具类似的功能,但采用受 awk 和 DTrace 启发的更简单的语言. -- [bpftrace](https://bpftrace.org/) - 使用自己的高级跟踪语言进行跟踪的工具. 它足够灵活,可以设想作为 DTrace 和 SystemTap 的 Linux 替代品. - - [bpftrace Cheat Sheet](https://www.brendangregg.com/BPF/bpftrace-cheat-sheet.html) - bpftrace 编程的摘要和备忘单. 包含有关语法、探测类型、变量和函数的信息. -- [kubectl trace](https://github.com/iovisor/kubectl-trace) - 用于在 Kubernetes 集群中执行 bpftrace 程序的 kubectl 插件. -- [inspektor-gadget](https://github.com/inspektor-gadget/inspektor-gadget) - 一系列基于 eBPF 的工具,用于调试和检查 Kubernetes 资源和应用程序. -- [bpfd](https://github.com/genuinetools/bpfd) - 用于在 Linux 上作为守护进程运行具有规则的 BPF 程序的框架. 容器感知. -- [BPFd](https://github.com/joelagnel/bpfd) - 一个独特的 BPF 守护进程,试图利用 bcc 工具的灵活性来跟踪和调试远程目标,特别是运行 Android 的设备. -- [adeb](https://github.com/joelagnel/adeb) - 用于通过 BPFd 在 Android 上使用跟踪工具的 Linux shell 环境. -- [greggd](https://github.com/olcf/greggd) - 系统守护进程,用于编译 eBPF 程序并将其加载到内核中,并将程序输出转发到套接字以进行度量聚合. -- [FUSE](https://events.linuxfoundation.org/wp-content/uploads/2017/11/When-eBPF-Meets-FUSE-Improving-Performance-of-User-File-Systems-Ashish-Bijlani-Georgia-Tech.pdf) - 考虑使用 eBPF. -- [upf-bpf](https://github.com/navarrothiago/upf-bpf) - 基于 XDP 的 5G UPF 内核内解决方案. -- [redbpf](https://github.com/foniod/redbpf) - 使用 Rust 高效编写 eBPF 代码的工具和框架. -- [ebpf-explorer](https://github.com/ebpfdev/explorer) - 用于探索系统地图和程序的网络界面. -- [ebpfmon](https://github.com/redcanaryco/ebpfmon) - 用于实时监控 eBPF 程序的 TUI(终端用户界面)应用程序. +- [ply](https://wkz.github.io/ply/) - A small but flexible open source dynamic tracer for Linux, with features similar to the bcc tools, but with a simpler language inspired by awk and DTrace. +- [bpftrace](https://bpftrace.org/) - A tool for tracing with its own high-level tracing language. It is flexible enough to be envisioned as a Linux replacement for DTrace and SystemTap. + - [bpftrace Cheat Sheet](https://www.brendangregg.com/BPF/bpftrace-cheat-sheet.html) - Summary and cheat sheet for programming in bpftrace. Contains information about syntax, probe types, variables and functions. +- [kubectl trace](https://github.com/iovisor/kubectl-trace) - A kubectl plug-in for executing bpftrace programs in a Kubernetes cluster. +- [inspektor-gadget](https://github.com/inspektor-gadget/inspektor-gadget) - A collection of eBPF-based tools to debug and inspect Kubernetes resources and applications. +- [bpfd](https://github.com/genuinetools/bpfd) - Framework for running BPF programs with rules on Linux as a daemon. Container aware. +- [BPFd](https://github.com/joelagnel/bpfd) - A distinct BPF daemon, trying to leverage the flexibility of the bcc tools to trace and debug remote targets, and in particular devices running with Android. +- [adeb](https://github.com/joelagnel/adeb) - A Linux shell environment for using tracing tools on Android with BPFd. +- [greggd](https://github.com/olcf/greggd) - System daemon to compile and load eBPF programs into the kernel, and forward program output to socket for metric aggregation. +- [FUSE](https://events.linuxfoundation.org/wp-content/uploads/2017/11/When-eBPF-Meets-FUSE-Improving-Performance-of-User-File-Systems-Ashish-Bijlani-Georgia-Tech.pdf) - Considers using eBPF. +- [upf-bpf](https://github.com/navarrothiago/upf-bpf) - An in-kernel solution based on XDP for 5G UPF. +- [redbpf](https://github.com/foniod/redbpf) - Tooling and framework to write eBPF code in Rust efficiently. +- [ebpf-explorer](https://github.com/ebpfdev/explorer) - A web interface to explore system's maps and programs. +- [ebpfmon](https://github.com/redcanaryco/ebpfmon) - A TUI (terminal user interface) application for real time monitoring of eBPF programs. ## eBPF in Security -- [Embrace The Red: Offensive BPF!](https://embracethered.com/blog/tags/ebpf) - 围绕 BPF 介绍的一系列帖子,重点关注攻击性环境,以及如何检测其滥用. 帖子包括有关 eBPF 的 rootkit 功能的讨论,或者不同用例需要哪种跟踪类型的讨论. -- [eBPF: Block Linux Fileless Payload "Malware" Execution with BPF LSM](https://djalal.opendz.org/post/ebpf-block-linux-fileless-payload-execution-with-bpf-lsm/) - 有关 BPF 如何帮助检测和阻止无文件恶意软件的博客文章. -- [Blackhat 2021: With Friends Like eBPF, Who Needs Enemies?](https://www.blackhat.com/us-21/briefings/schedule/#with-friends-like-ebpf-who-needs-enemies-23619) - 讨论 eBPF rootkit 以及 eBPF 的功能如何被滥用. Rootkit 也是 Defcon 上的演讲对象, [eBPF, I thought we were friends !](https://defcon.org/html/defcon-29/dc-29-speakers.html#fournier). -- [ebpfkit](https://github.com/Gui774ume/ebpfkit) - 利用多个 eBPF 功能来实施攻击性安全技术的 rootkit. -- [ebpfkit-monitor](https://github.com/Gui774ume/ebpfkit-monitor) - 用于静态分析 eBPF 字节码或在运行时监视可疑 eBPF 活动的实用程序. 它是专门为检测 ebpfkit 而设计的. -- [Bad BPF](https://github.com/pathtofile/bad-bpf) - 恶意 eBPF 程序的集合,它们利用 eBPF 的能力在用户模式程序和内核之间读取和写入用户数据. -- [TripleCross](https://github.com/h3xduck/TripleCross) - 具有后门、C2、库注入、执行劫持、持久性和隐形功能的 Linux eBPF rootkit. +- [Embrace The Red: Offensive BPF!](https://embracethered.com/blog/tags/ebpf) - A series of posts around the introduction into BPF with a focus to an offensive setting, and also how its misuse can be detected. Posts include discussions on the rootkit capabilities of eBPF, or on which tracing type is needed for different use cases. +- [eBPF: Block Linux Fileless Payload "Malware" Execution with BPF LSM](https://djalal.opendz.org/post/ebpf-block-linux-fileless-payload-execution-with-bpf-lsm/) - Blog post about how BPF can help detection and blocking fileless malware. +- [Blackhat 2021: With Friends Like eBPF, Who Needs Enemies?](https://www.blackhat.com/us-21/briefings/schedule/#with-friends-like-ebpf-who-needs-enemies-23619) - Talk about an eBPF rootkit and how the capabilities of eBPF could be abused. The rootkit was also the object of a talk at Defcon, [eBPF, I thought we were friends !](https://defcon.org/html/defcon-29/dc-29-speakers.html#fournier). +- [ebpfkit](https://github.com/Gui774ume/ebpfkit) - A rootkit that leverages multiple eBPF features to implement offensive security techniques. +- [ebpfkit-monitor](https://github.com/Gui774ume/ebpfkit-monitor) - An utility to statically analyze eBPF bytecode or monitor suspicious eBPF activity at runtime. It was specifically designed to detect ebpfkit. +- [Bad BPF](https://github.com/pathtofile/bad-bpf) - A collection of malicious eBPF programs that make use of eBPF's ability to read and write user data in between the usermode program and the kernel. +- [TripleCross](https://github.com/h3xduck/TripleCross) - A Linux eBPF rootkit with a backdoor, C2, library injection, execution hijacking, persistence and stealth capabilities. ## The Code -- [linux/include/linux/bpf.h](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/bpf.h) - 和 [linux/include/uapi/bpf.h](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/bpf.h):与eBPF相关的定义,分别用于内核和与用户空间程序的接口. -- [linux/include/linux/filter.h](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/filter.h) - 和 [linux/include/uapi/filter.h](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/filter.h):用于运行 BPF 程序本身的信息. -- [linux/kernel/bpf/](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf) - 该目录包含大部分 BPF 相关代码. 特别是,这些文件值得关注: +- [linux/include/linux/bpf.h](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/bpf.h) - with [linux/include/uapi/bpf.h](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/bpf.h): definitions related to eBPF, to be used respectively in the kernel and to interface with userspace programs. +- [linux/include/linux/filter.h](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/linux/filter.h) - with [linux/include/uapi/filter.h](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/include/uapi/linux/filter.h): information used to run the BPF programs themselves. +- [linux/kernel/bpf/](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf) - This directory contains most of BPF-related code. In particular, those files are worth of interest: - - [`syscall.c`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/syscall.c) - 系统调用允许的不同操作,例如程序加载或地图管理. - - [`core.c`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/core.c) - BPF 解释器. - - [`verifier.c`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/verifier.c) - BPF 验证器. + - [`syscall.c`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/syscall.c) - Different operations permitted by the system call, such as program loading or map management. + - [`core.c`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/core.c) - BPF interpreter. + - [`verifier.c`](https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/kernel/bpf/verifier.c) - BPF verifier. -- [linux/net/core/filter.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/core/filter.c) - 与网络相关的功能和 eBPF 助手(TC、XDP 等); 还包含将 cBPF 字节码迁移到 eBPF 的代码(所有 cBPF 程序在最近的内核中都转换为 eBPF). -- [linux/kernel/trace/bpf_trace.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/kernel/trace/bpf_trace.c) - 与跟踪和监控相关的函数和 eBPF 助手(kprobes、跟踪点等). -- JIT编译器位于各自架构的目录下,例如文件 [linux/arch/x86/net/bpf_jit_comp.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/net/bpf_jit_comp.c) 对于 x86\. 用于硬件卸载的 JIT 编译器例外,位于其驱动程序中,例如 [linux/drivers/net/ethernet/netronome/nfp/bpf/jit.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/netronome/nfp/bpf/jit.c) Netronome NFP. -- [linux/net/sched/](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/sched) - 特别是在文件“act_bpf.c”(操作)和“cls_bpf.c”(过滤器)中:与 TC 的 BPF 操作和过滤器相关的代码. +- [linux/net/core/filter.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/core/filter.c) - Functions and eBPF helpers related to networking (TC, XDP etc.); also contains the code to migrate cBPF bytecode to eBPF (all cBPF programs are translated to eBPF in recent kernels). +- [linux/kernel/trace/bpf_trace.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/kernel/trace/bpf_trace.c) - Functions and eBPF helpers related to tracing and monitoring (kprobes, tracepoints, etc.). +- The JIT compilers are under the directory of their respective architectures, such as file [linux/arch/x86/net/bpf_jit_comp.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/x86/net/bpf_jit_comp.c) for x86\. Exception is made for JIT compilers used for hardware offload, sitting in their drivers, such as [linux/drivers/net/ethernet/netronome/nfp/bpf/jit.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/drivers/net/ethernet/netronome/nfp/bpf/jit.c) for Netronome NFP. +- [linux/net/sched/](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/sched) - and in particular in files `act_bpf.c` (action) and `cls_bpf.c` (filter): code related to BPF actions and filters with TC. - [linux/kernel/seccomp.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/kernel/seccomp.c) -- [linux/net/core/dev.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/core/dev.c) - 包含函数“dev_change_xdp_fd()”,在从用户空间加载到内核后,通过 Netlink 命令调用该函数以将 XDP 程序挂钩到设备. 该函数依次使用来自相关驱动程序的回调. +- [linux/net/core/dev.c](https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/net/core/dev.c) - contains the function `dev_change_xdp_fd()` that is called through a Netlink command to hook a XDP program to a device, after is has been loaded into the kernel from user space. This function in turns uses a callback from the relevant driver. ## Development and Community -- [The bpf-next tree](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/) - BPF 补丁落在这棵树上. 它定期合并到 [net-next](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git),它本身会在每次发布时合并到 Linus 树中. -- [Kernel documentation](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/Documentation/bpf/bpf_devel_QA.rst) - 关于对 BPF 的贡献. -- [The netdev mailing list](http://lists.openwall.net/netdev/) - Linux 内核网络堆栈开发的邮件列表. 所有补丁都会发送到那里进行审查和包含. -- [XDP-newbies](http://vger.kernel.org/vger-lists.html#xdp-newbies) - 专门用于 XDP 编程的邮件列表(用于架构或寻求帮助). -- [IO Visor mailing list](http://lists.iovisor.org/pipermail/iovisor-dev/) - BPF 是该项目的核心,并定期在邮件列表上进行讨论. +- [The bpf-next tree](https://git.kernel.org/pub/scm/linux/kernel/git/bpf/bpf-next.git/) - BPF patches land in this tree. It is regularly merged into [net-next](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git), which is itself merged for each release to Linus' tree. +- [Kernel documentation](https://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next.git/tree/Documentation/bpf/bpf_devel_QA.rst) - About contributions to BPF. +- [The netdev mailing list](http://lists.openwall.net/netdev/) - Mailing list for Linux kernel networking stack development. All patches are sent there for review and inclusion. +- [XDP-newbies](http://vger.kernel.org/vger-lists.html#xdp-newbies) - A mailing list specially dedicated to XDP programming (both for architecture or for asking for help). +- [IO Visor mailing list](http://lists.iovisor.org/pipermail/iovisor-dev/) - BPF is at the heart of the project, and is regularly discussed on the mailing list. - [@IOVisor Twitter account](https://twitter.com/IOVisor) -- [The XDP Collaboration Project](https://github.com/xdp-project/xdp-project) - GitHub 存储库,其中包含有关 XDP 未来发展的注释和想法. +- [The XDP Collaboration Project](https://github.com/xdp-project/xdp-project) - A GitHub repository with notes and ideas regarding the future evolutions of XDP. ## Other Lists of Resources on eBPF @@ -386,14 +387,14 @@ Recently [Cilium](https://cilium.io) 推出了一个关于 eBPF 的优秀网站 ## Acknowledgement -感谢 Quentin Monnet 和 Daniel Borkmann 的原创作品 [Dive into BPF: A List of Reading Material](https://qmonnet.github.io/whirl-offload/2016/09/01/dive-into-bpf/) 这成为了这份清单的基础. +Thank you to Quentin Monnet and Daniel Borkmann for their original work on [Dive into BPF: A List of Reading Material](https://qmonnet.github.io/whirl-offload/2016/09/01/dive-into-bpf/) which became the basis for this list. ## Contributing -欢迎投稿! 阅读 [contribution guidelines](https://github.com/zoidbergwill/awesome-ebpf/blob/master/contributing.md) 第一的. +Contributions welcome! Read the [contribution guidelines](https://github.com/zoidbergwill/awesome-ebpf/blob/master/contributing.md) first. ## License [![CC0](http://mirrors.creativecommons.org/presskit/buttons/88x31/svg/cc-zero.svg)](http://creativecommons.org/publicdomain/zero/1.0) -在法律允许的范围内,zoidbergwill 放弃了本作品的所有版权以及相关或邻接权. +To the extent possible under law, zoidbergwill has waived all copyright and related or neighboring rights to this work. diff --git a/docs/awesome/awesome-generative-ai.md b/docs/awesome/awesome-generative-ai.md index 0d963f86a5..1749205803 100644 --- a/docs/awesome/awesome-generative-ai.md +++ b/docs/awesome/awesome-generative-ai.md @@ -290,3 +290,4 @@ Contributions to this list are welcome. Before submitting your suggestions, plea - [AgentGPT](https://github.com/reworkd/AgentGPT) - Assemble, configure, and deploy autonomous AI Agents in your browser. - [GPT Engineer](https://github.com/AntonOsika/gpt-engineer) - Specify what you want it to build, the AI asks for clarification, and then builds it. - [GPT Prompt Engineer](https://github.com/mshumer/gpt-prompt-engineer) - Automated prompt engineering. It generates, tests, and ranks prompts to find the best ones. +- [MetaGPT](https://github.com/geekan/MetaGPT) - The Multi-Agent Framework: Given one line requirement, return PRD, design, tasks, repo. diff --git a/docs/awesome/awesome-nix.md b/docs/awesome/awesome-nix.md index 68c44a812f..5cd5055643 100644 --- a/docs/awesome/awesome-nix.md +++ b/docs/awesome/awesome-nix.md @@ -1,11 +1,11 @@ ## Awesome Nix [![Awesome](https://awesome.re/badge.svg)](https://awesome.re) [](https://nixos.org) -> Nix 社区中最佳资源的精选列表. +> A curated list of the best resources in the Nix community. -[Nix](https://github.com/nixos/nix) 是一款适用于 Linux 和其他 Unix 系统的强大包管理器,使包管理变得可靠且可重复. +[Nix](https://github.com/nixos/nix) is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible. -*请阅读 [contribution guidelines](https://github.com/nix-community/awesome-nix/blob/master/CONTRIBUTING.md) 在贡献之前.* +*Please read the [contribution guidelines](https://github.com/nix-community/awesome-nix/blob/master/CONTRIBUTING.md) before contributing.* @@ -13,226 +13,230 @@ ### Learning -* [Building a Rust service with Nix](https://fasterthanli.me/series/building-a-rust-service-with-nix) - 关于使用 Nix 创建 Rust 应用程序的深入博客系列. -* [How to Learn Nix](https://ianthehenry.com/posts/how-to-learn-nix/) - 它就像 Let's Play,但软件文档晦涩难懂. -* [Nix - A One Pager](https://code.tvl.fyi/about/nix/nix-1p) - Nix 语言的一页介绍. -* [Nix from First Principles: Flake Edition](https://tonyfinn.com/blog/nix-from-first-principles-flake-edition/) - 使用 Nix 功能、Flakes 以及使用 Nix 进行开发的现代速成课程. -* [Nix Notes](https://github.com/noteed/nix-notes) - 关于 Nix 的简短注释的集合,每个注释都贡献相同的虚拟机映像. -* [Nix Pills](https://nixos.org/guides/nix-pills/) - 最好的学习方式,带有示例. -* [Nix Shorts](https://github.com/alper/nix-shorts) - 关于如何使用 Nix 的简短说明集合,针对 Nix Flakes 进行了更新. -* [nix.dev](https://nix.dev/) - 为开发人员提供的关于使用 Nix 生态系统完成工作的固执己见的指南. -* [NixOS & Flakes Book](https://github.com/ryan4yin/nixos-and-flakes-book) - 一本针对初学者的非官方且固执己见的 NixOS & Flakes 书籍. -* [Tour of Nix](https://nixcloud.io/tour) - 有关 Nix 语言结构的在线交互式教程. -* [Wombat's Book of Nix](https://mhwombat.codeberg.page/nix-book/) - 对 Nix 和 flake 的全书介绍. -* [Zero to Nix](https://zero-to-nix.com/) - 由确定系统创建的以薄片为中心的 Nix 及其概念指南,可帮助初学者快速入门. +* [Building a Rust service with Nix](https://fasterthanli.me/series/building-a-rust-service-with-nix) - An in-depth blog series about creating a Rust application with Nix. +* [How to Learn Nix](https://ianthehenry.com/posts/how-to-learn-nix/) - It's like a Let's Play, but for obscure software documentation. +* [Nix - A One Pager](https://code.tvl.fyi/about/nix/nix-1p) - A one page introduction to the Nix language. +* [Nix from First Principles: Flake Edition](https://tonyfinn.com/blog/nix-from-first-principles-flake-edition/) - A modern crash-course to using Nix features, Flakes, and developing with Nix. +* [Nix Notes](https://github.com/noteed/nix-notes) - A collection of short notes about Nix, each contributing to the same virtual machine image. +* [Nix Pills](https://nixos.org/guides/nix-pills/) - The best way to learn, with examples. +* [Nix Shorts](https://github.com/alper/nix-shorts) - A collection of short notes about how to use Nix, updated for Nix Flakes. +* [nix.dev](https://nix.dev/) - An opinionated guide for developers about getting things done using the Nix ecosystem. +* [NixOS & Flakes Book](https://github.com/ryan4yin/nixos-and-flakes-book) - An unofficial and opinionated NixOS & Flakes book for beginners. +* [Tour of Nix](https://nixcloud.io/tour) - An online interactive tutorial on Nix language constructs. +* [Wombat's Book of Nix](https://mhwombat.codeberg.page/nix-book/) - A book-length introduction to Nix and flakes. +* [Zero to Nix](https://zero-to-nix.com/) - A flake-centric guide to Nix and its concepts created by Determinate Systems to quickly onboard beginners. ### Discovery -* [Hound](https://search.nix.gsc.io) - 轻松搜索所有或选定的 Nix 相关存储库. -* [Nix Package Versions](https://lazamar.co.uk/nix-versions/) - 查找频道中可用的软件包的所有版本以及您可以从中下载该软件包的修订版. -* [Noogle](https://noogle.dev/) - Nix API 搜索引擎允许根据函数的类型和其他属性搜索函数. -* [Pkgs on Nix](https://pkgs.on-nix.com/) - 包含所有版本、所有渠道的 Nix 软件包的数据库. -* [Home Manager Option Search](https://mipmip.github.io/home-manager-option-search/) - 搜索所有 2000 多个家庭管理器选项并阅读如何使用它们. +* [Hound](https://search.nix.gsc.io) - Handily search across all or selected Nix-related repositories. +* [Nix Package Versions](https://lazamar.co.uk/nix-versions/) - Find all versions of a package that were available in a channel and the revision you can download it from. +* [Noogle](https://noogle.dev/) - Nix API search engine allowing to search functions based on their types and other attributes. +* [Pkgs on Nix](https://pkgs.on-nix.com/) - A database with Nix packages at all versions, from all channels. +* [Home Manager Option Search](https://mipmip.github.io/home-manager-option-search/) - Search through all 2000+ Home Manager options and read how to use them. ## Installation Media -* [nixos-generators](https://github.com/nix-community/nixos-generators) - 采用 NixOS 配置并构建多个不同的映像类型,包括 VirtualBox VM、Azure 映像和安装 ISO. -* [nixos-infect](https://github.com/elitak/nixos-infect) - 将正在运行的非 NixOS Linux 主机替换为 NixOS. -* [nixos-up](https://github.com/samuela/nixos-up) - 超级简单的 NixOS 安装程序,可以从安装 ISO 中使用. -* [nix-installer](https://github.com/DeterminateSystems/nix-installer) - 官方 Nix 安装脚本的自选替代方案. +* [nixos-generators](https://github.com/nix-community/nixos-generators) - Take a NixOS config and build multiple different images types including VirtualBox VMs, Azure images, and installation ISOs. +* [nixos-infect](https://github.com/elitak/nixos-infect) - Replace a running non-NixOS Linux host with NixOS. +* [nixos-up](https://github.com/samuela/nixos-up) - Super easy NixOS installer that can be used from the installation ISO. +* [nix-installer](https://github.com/DeterminateSystems/nix-installer) - Opinonated alternative to the official Nix install scripts. ## Channel History -* [Channel History](https://channels.nix.gsc.io) - 获取 Nix 频道的历史 git 提交. -* [Nix Infra Status](https://status.nixos.org) - 获取每个 Nix 通道的年龄和当前 git 提交. -* [Nix Review Tools Reports](https://malob.github.io/nix-review-tools-reports/) - 显示主要 Hydra 作业集有问题的依赖关系(导致最多失败构建的依赖关系)的报告. -* [Nixpkgs Bot](https://git.maralorn.de/nixos-config/tree/packages/nixpkgs-bot) - 一个 Matrix 机器人,用于跟踪 Nixpkgs 拉取请求何时到达相关分支. -* [nixpkgs PR tracker](https://nixpk.gs/pr-tracker.html) - 跟踪 PR 是否已进入频道的跟踪器. +* [Channel History](https://channels.nix.gsc.io) - Get historical git commits for Nix channels. +* [Nix Infra Status](https://status.nixos.org) - Get the age and current git commit of each Nix channel. +* [Nix Review Tools Reports](https://malob.github.io/nix-review-tools-reports/) - Reports showing problematic dependencies (dependencies causing the most failed builds) for major Hydra jobsets. +* [Nixpkgs Bot](https://git.maralorn.de/nixos-config/tree/packages/nixpkgs-bot) - A Matrix bot to track when a Nixpkgs pull request reaches a relevant branch. +* [nixpkgs PR tracker](https://nixpk.gs/pr-tracker.html) - A tracker for whether a PR has made it into a channel yet. ## Deployment Tools -* [bento](https://github.com/rapenne-s/bento/) - KISS 部署工具,可让您的 NixOS 队列(服务器和工作站)保持最新状态. -* [Colmena](https://github.com/zhaofengli/colmena) - 一个简单、无状态的 NixOS 部署工具,以 NixOps 和 morph 为模型. -* [deploy-rs](https://github.com/serokell/deploy-rs) - 一个简单的多配置文件 Nix-flake 部署工具. -* [krops](https://cgit.krebsco.de/krops/about/) - 用于远程或本地部署 NixOS 系统的轻量级工具包. -* [KubeNix](https://github.com/xtruder/kubenix) - 使用 Nix 的 Kubernetes 资源构建器. -* [KuberNix](https://github.com/saschagrunert/kubernix) - 通过 Nix 包的单依赖 Kubernetes 集群. -* [morph](https://github.com/DBCDK/morph) - 用于管理现有 NixOS 主机的工具. -* [Nixery](https://github.com/tazjin/nixery) - 与 Docker 兼容的容器注册表,可通过 Nix 临时构建镜像. -* [Nixinate](https://github.com/MatthewCroughan/nixinate) - Nix flake 库,提供用于通过 SSH 管理现有 NixOS 主机的应用程序输出. -* [NixOps](https://github.com/NixOS/nixops) - Nix 官方部署工具,兼容 AWS、Hetzner 等. -* [pushnix](https://github.com/arnarg/pushnix) - 简单的 cli 实用程序,可推送 NixOS 配置并使用 ssh 触发重建. -* [terraform-nixos](https://github.com/tweag/terraform-nixos) - 一组旨在部署 NixOS 的 Terraform 模块. -* [terranix](https://terranix.org) - 使用 Nix 和 NixOS 模块系统编写 Terraform 代码. +* [bento](https://github.com/rapenne-s/bento/) - A KISS deployment tool to keep your NixOS fleet (servers & workstations) up to date. +* [Colmena](https://github.com/zhaofengli/colmena) - A simple, stateless NixOS deployment tool modeled after NixOps and morph. +* [deploy-rs](https://github.com/serokell/deploy-rs) - A simple multi-profile Nix-flake deploy tool. +* [krops](https://cgit.krebsco.de/krops/about/) - A lightweight toolkit to deploy NixOS systems, remotely or locally. +* [KubeNix](https://github.com/xtruder/kubenix) - A Kubernetes resource builder using Nix. +* [KuberNix](https://github.com/saschagrunert/kubernix) - Single-dependency Kubernetes clusters via Nix packages. +* [morph](https://github.com/DBCDK/morph) - A tool for managing existing NixOS hosts. +* [Nixery](https://github.com/tazjin/nixery) - A Docker-compatible container registry which builds images ad-hoc via Nix. +* [Nixinate](https://github.com/MatthewCroughan/nixinate) - A Nix flake library to provide app outputs for managing existing NixOS hosts over SSH. +* [NixOps](https://github.com/NixOS/nixops) - The official Nix deployment tool, compatible with AWS, Hetzner, and more. +* [pushnix](https://github.com/arnarg/pushnix) - Simple cli utility that pushes NixOS configuration and triggers a rebuild using ssh. +* [terraform-nixos](https://github.com/tweag/terraform-nixos) - A set of Terraform modules designed to deploy NixOS. +* [terranix](https://terranix.org) - Use Nix and the NixOS module system to write your Terraform code. ## Virtualisation -* [nixos-shell](https://github.com/Mic92/nixos-shell) - 使用 Nix 进行简单的无头虚拟机配置(类似于 Vagrant). -* [extra-container](https://github.com/erikarvstedt/extra-container) - 从命令行运行声明性 NixOS 容器. -* [microvm](https://github.com/astro/microvm.nix) - 基于 NixOS 的 MicroVM. +* [nixos-shell](https://github.com/Mic92/nixos-shell) - Simple headless VM configuration using Nix (similar to Vagrant). +* [extra-container](https://github.com/erikarvstedt/extra-container) - Run declarative NixOS containers from the command line. +* [microvm](https://github.com/astro/microvm.nix) - NixOS-based MicroVMs. ## Command-Line Tools -* [alejandra](https://github.com/kamadorueda/alejandra) - 固执己见的 Nix 代码格式化程序,针对速度和一致性进行了优化. -* [comma](https://github.com/nix-community/comma) - 快速运行任何二进制文件; 将“nix run”和“nix-index”包装在一起. -* [deadnix](https://github.com/astro/deadnix) - 扫描 Nix 文件中的死代码. -* [manix](https://github.com/mlvzk/manix) - 查找 Nixpkgs、NixOS 和 Home Manager 的配置选项和功能文档. -* [nixfmt](https://github.com/serokell/nixfmt) - Nix 代码的格式化程序,旨在轻松应用统一的样式. -* [nixpkgs-fmt](https://github.com/nix-community/nixpkgs-fmt) - nixpkgs 的 Nix 代码格式化程序. -* [nixpkgs-hammering](https://github.com/jtojnar/nixpkgs-hammering) - Nixpkgs 包表达式的固执己见的 linter. -* [nix-alien](https://github.com/thiagokokada/nix-alien) - 在 Nix/NixOS 上轻松运行未修补的二进制文件. -* [nix-diff](https://github.com/Gabriella439/nix-diff) - 一个解释为什么两个 Nix 推导不同的工具. -* [nix-du](https://github.com/symphorien/nix-du) - 可视化要删除哪些 gc-roots 以释放 Nix 存储中的一些空间. -* [nix-index](https://github.com/bennofs/nix-index) - 快速找到包含特定文件的 Nix 软件包. -* [nix-init](https://github.com/nix-community/nix-init) - 通过哈希预取、依赖推断、许可证检测等从 URL 生成 Nix 包. -* [nix-melt](https://github.com/nix-community/nix-melt) - 类似游侠的 flake.lock 查看器. -* [nix-output-monitor](https://git.maralorn.de/nix-output-monitor/) - 在构建推导时生成有用的图表和统计数据的工具. -* [nix-prefetch](https://github.com/msteen/nix-prefetch) - 用于更新源校验和的通用工具. +* [alejandra](https://github.com/kamadorueda/alejandra) - An opinionated Nix code formatter optimized for speed and consistency. +* [comma](https://github.com/nix-community/comma) - Quickly run any binary; wraps together `nix run` and `nix-index`. +* [deadnix](https://github.com/astro/deadnix) - Scan Nix files for dead code. +* [manix](https://github.com/mlvzk/manix) - Find configuration options and function documentation for Nixpkgs, NixOS, and Home Manager. +* [nixfmt](https://github.com/serokell/nixfmt) - A formatter for Nix code, intended to easily apply a uniform style. +* [nixpkgs-fmt](https://github.com/nix-community/nixpkgs-fmt) - Nix code formatter for nixpkgs. +* [nixpkgs-hammering](https://github.com/jtojnar/nixpkgs-hammering) - An opinionated linter for Nixpkgs package expressions. +* [nix-alien](https://github.com/thiagokokada/nix-alien) - Run unpatched binaries on Nix/NixOS easily. +* [nix-diff](https://github.com/Gabriella439/nix-diff) - A tool to explain why two Nix derivations differ. +* [nix-du](https://github.com/symphorien/nix-du) - Visualise which gc-roots to delete to free some space in your Nix store. +* [nix-index](https://github.com/bennofs/nix-index) - Quickly locate Nix packages with specific files. +* [nix-init](https://github.com/nix-community/nix-init) - Generate Nix packages from URLs with hash prefetching, dependency inference, license detection, and more. +* [nix-melt](https://github.com/nix-community/nix-melt) - A ranger-like flake.lock viewer. +* [nix-output-monitor](https://git.maralorn.de/nix-output-monitor/) - A tool to produce useful graphs and statistics when building derivations. +* [nix-prefetch](https://github.com/msteen/nix-prefetch) - A universal tool for updating source checksums. * [nix-tree](https://github.com/utdemir/nix-tree) - Interactively browse the dependency graph of Nix derivations. -* [nurl](https://github.com/nix-community/nurl) - 从存储库 URL 生成 Nix fetcher 调用. -* [nvd](https://gitlab.com/khumba/nvd) - 两个存储路径之间的软件包版本差异; 它对于比较重建时的 NixOS 各代特别有用. -* [statix](https://github.com/nerdypepper/statix) - 用于检查和修复 Nix 代码中的反模式的 linter/fixer. +* [nurl](https://github.com/nix-community/nurl) - Generate Nix fetcher calls from repository URLs. +* [nvd](https://gitlab.com/khumba/nvd) - Diff package versions between two store paths; it's especially useful for comparing NixOS generations on rebuild. +* [statix](https://github.com/nerdypepper/statix) - A linter/fixer to check for and fix antipatterns in Nix code. ## Development -* [Arion](https://github.com/hercules-ci/arion) - 在 Nix/NixOS 的帮助下运行“docker-compose”. -* [cached-nix-shell](https://github.com/xzfc/cached-nix-shell) - “nix-shell”替代品,使用缓存快速打开后续 shell. -* [Cachix](https://cachix.org/) - 托管二进制缓存服务; 对于开源项目免费. -* [Devbox](https://github.com/jetpack-io/devbox) - 即时、可移植且可预测的开发环境. -* [devshell](https://github.com/numtide/devshell) - `mkShell` 具有额外的位和 toml 配置选项,以便能够加入非 nix 用户. -* [dream2nix](https://github.com/nix-community/dream2nix) - 一个用于自动将包从其他构建系统转换到 Nix 的框架. -* [flake.parts](https://github.com/hercules-ci/flake-parts) - Flakes 的最小 Nix 模块框架:将您的 Flakes 拆分为模块并使用社区模块完成工作. -* [flake-utils](https://github.com/numtide/flake-utils) - Pure Nix flake 实用函数可帮助编写 flake. -* [flake-utils-plus](https://github.com/gytis-ivaskevicius/flake-utils-plus) - 轻量级 Nix 库 flake,用于轻松进行 NixOS flake 配置. -* [flox](https://github.com/flox/flox) - 管理和共享开发环境、打包项目以及在任何地方发布工件. -* [gitignore.nix](https://github.com/hercules-ci/gitignore.nix) - 功能最齐全且易于使用的“.gitignore”集成. -* [haumea](https://github.com/nix-community/haumea) - Nix 语言基于文件系统的模块系统,类似于传统编程语言,支持文件层次结构和可见性. -* [lorri](https://github.com/nix-community/lorri/) - 一个更好的“nix-shell”,用于增强 direnv 的开发. -* [namaka](https://github.com/nix-community/namaka) - 基于 haumea 的 Nix 快照测试. -* [nil](https://github.com/oxalica/nil) - NIx 语言服务器,用于在 Nix 中编写的增量分析助手. -* [niv](https://github.com/nmattia/niv/) - 通过包固定轻松管理 Nix 项目的依赖关系. -* [nix-direnv](https://github.com/nix-community/nix-direnv) - direnv 环境自动加载器的快速加载器和 flake 兼容配置. -* [nix-update](https://github.com/Mic92/nix-update) - 更新 nix 软件包的版本/源哈希. -* [nixd](https://github.com/nix-community/nixd) - Nix 语言服务器,基于 Nix 库. -* [nixpkgs-review](https://github.com/Mic92/nixpkgs-review) - 验证 Nixpkgs 中的拉取请求是否正确构建的最佳工具. -* [pre-commit-hooks.nix](https://github.com/cachix/pre-commit-hooks.nix) - 在提交时和 CI 上运行 linter/formatters. -* [rnix-lsp](https://github.com/nix-community/rnix-lsp) - Nix 的语法检查语言服务器. -* [robotnix](https://github.com/danielfullmer/robotnix) - Android (AOSP) 图像的声明性且可重现的构建系统. +* [Arion](https://github.com/hercules-ci/arion) - Run `docker-compose` with help from Nix/NixOS. +* [cached-nix-shell](https://github.com/xzfc/cached-nix-shell) - A `nix-shell` replacement that uses caching to open subsequent shells quickly. +* [Cachix](https://cachix.org/) - Hosted binary cache service; free for open-source projects. +* [Devbox](https://github.com/jetpack-io/devbox) - Instant, portable, and predictable development environments. +* [devshell](https://github.com/numtide/devshell) - `mkShell` with extra bits and a toml config option to be able to onboard non-nix users. +* [dream2nix](https://github.com/nix-community/dream2nix) - A framework for automatically converting packages from other build systems to Nix. +* [flake.parts](https://github.com/hercules-ci/flake-parts) - Minimal Nix modules framework for Flakes: split your flakes into modules and get things done with community modules. +* [flake-utils](https://github.com/numtide/flake-utils) - Pure Nix flake utility functions to help with writing flakes. +* [flake-utils-plus](https://github.com/gytis-ivaskevicius/flake-utils-plus) - A lightweight Nix library flake for painless NixOS flake configuration. +* [flox](https://github.com/flox/flox) - Manage and share development environments, package projects, and publish artifacts anywhere. +* [gitignore.nix](https://github.com/hercules-ci/gitignore.nix) - The most feature-complete and easy-to-use `.gitignore` integration. +* [haumea](https://github.com/nix-community/haumea) - Filesystem-based module system for the Nix language similar to traditional programming languages, with support for file hierarchy and visibility. +* [lorri](https://github.com/nix-community/lorri/) - A much better `nix-shell` for development that augments direnv. +* [namaka](https://github.com/nix-community/namaka) - Snapshot testing for Nix based on haumea. +* [nil](https://github.com/oxalica/nil) - NIx Language server, an incremental analysis assistent for writing in Nix. +* [niv](https://github.com/nmattia/niv/) - Easy dependency management for Nix projects with package pinning. +* [nix-direnv](https://github.com/nix-community/nix-direnv) - A fast loader and flake-compliant configuration for the direnv environment auto-loader. +* [nix-update](https://github.com/Mic92/nix-update) - Update versions/source hashes of nix packages. +* [nixd](https://github.com/nix-community/nixd) - Nix language server, based on Nix libraries. +* [nixpkgs-review](https://github.com/Mic92/nixpkgs-review) - The best tool to verify that a pull-request in Nixpkgs is building properly. +* [pre-commit-hooks.nix](https://github.com/cachix/pre-commit-hooks.nix) - Run linters/formatters at commit time and on your CI. +* [rnix-lsp](https://github.com/nix-community/rnix-lsp) - A syntax-checking language server for Nix. +* [robotnix](https://github.com/danielfullmer/robotnix) - A declarative and reproducible build system for Android (AOSP) images. ## DevOps -* [Makes](https://github.com/fluidattacks/makes) - 基于 Nix 的 CI/CD 管道框架,用于从任何地方以任何语言构建、测试和发布项目. -* [Standard](https://github.com/divnix/std) - 一个固执己见的 Nix Flakes 框架,可让大型项目中的 Nix 代码井井有条,并配有针对 DevOps 场景优化的友好 CLI/TUI. +* [Makes](https://github.com/fluidattacks/makes) - A Nix-based CI/CD pipeline framework for building, testing, and releasing projects in any language, from anywhere. +* [Standard](https://github.com/divnix/std) - An opinionated Nix Flakes framework to keep Nix code in large projects organized, accompanied by a friendly CLI/TUI optized for DevOps scenarios. ## Programming Languages ### Arduino -* [nixduino](https://github.com/boredom101/nixduino) - 基于 Nix 的工具可帮助构建 Arduino 草图. +* [nixduino](https://github.com/boredom101/nixduino) - Nix-based tool to help build Arduino sketches. ### Clojure -* [clj-nix](https://github.com/jlesquembre/clj-nix) - Clojure 项目的 Nix 辅助函数. +* [clj-nix](https://github.com/jlesquembre/clj-nix) - Nix helper functions for Clojure projects. ### Crystal -* [crystal2nix](https://github.com/nix-community/crystal2nix) - 将 `shard.lock` 转换为 Nix 表达式. +* [crystal2nix](https://github.com/nix-community/crystal2nix) - Convert `shard.lock` into Nix expressions. ### Elm -* [elm2nix](https://github.com/cachix/elm2nix) - 将 `elm.json` 转换为 Nix 表达式. +* [elm2nix](https://github.com/cachix/elm2nix) - Convert `elm.json` into Nix expressions. ### Haskell -* [cabal2nix](https://github.com/NixOS/cabal2nix) - 将 Cabal 文件转换为 Nix 构建表达式. -* [haskell-flake](https://github.com/srid/haskell-flake) - 用于 Haskell 开发的“flake-parts”Nix 模块. -* [haskell.nix](https://github.com/input-output-hk/haskell.nix) - Nixpkgs 的替代 Haskell 基础设施. -* [nix-haskell-mode](https://github.com/matthewbauer/nix-haskell-mode) - Emacs 中的自动 Haskell 设置. -* [nixkell](https://github.com/pwm/nixkell) - 使用 Nix 和 direnv 的 Haskell 项目模板. +* [cabal2nix](https://github.com/NixOS/cabal2nix) - Converts a Cabal file into a Nix build expression. +* [haskell-flake](https://github.com/srid/haskell-flake) - A `flake-parts` Nix module for Haskell development. +* [haskell.nix](https://github.com/input-output-hk/haskell.nix) - Alternative Haskell Infrastructure for Nixpkgs. +* [nix-haskell-mode](https://github.com/matthewbauer/nix-haskell-mode) - Automatic Haskell setup in Emacs. +* [nixkell](https://github.com/pwm/nixkell) - A Haskell project template using Nix and direnv. ### Node.js -* [Napalm](https://github.com/nix-community/napalm) - 支持使用轻量级 npm 注册表在 Nix 中构建 npm 包. -* [node2nix](https://github.com/svanderburg/node2nix) - 从 `package.json` (或 `package-lock.json`)生成 Nix 表达式(以文件形式存储). -* [npmlock2nix](https://github.com/nix-community/npmlock2nix) - 从 `package-lock.json` (内存中)生成 Nix 表达式,主要用于 Web 项目. +* [Napalm](https://github.com/nix-community/napalm) - Support for building npm packages in Nix with a lightweight npm registry. +* [node2nix](https://github.com/svanderburg/node2nix) - Generate Nix expression from a `package.json` (or `package-lock.json`) (to be stored as files). +* [npmlock2nix](https://github.com/nix-community/npmlock2nix) - Generate Nix expressions from a `package-lock.json` (in-memory), primarily for web projects. ### OCaml -* [opam2nix](https://github.com/timbertson/opam2nix) - 从 opam 包生成 Nix 表达式. +* [opam2nix](https://github.com/timbertson/opam2nix) - Generate Nix expressions from opam packages. ### PHP -* [composer2nix](https://github.com/svanderburg/composer2nix) - 生成 Nix 表达式来构建 Composer 包. -* [composer-plugin-nixify](https://github.com/stephank/composer-plugin-nixify) - Composer 插件可帮助 Nix 打包. -* [composition-c4](https://github.com/fossar/composition-c4) - 支持从 `composer.lock` 构建 Composer 包(使用 IFD). -* [nix-phps](https://github.com/fossar/nix-phps) - 包含旧的和未维护的 PHP 版本的 Flake(用于 CI 使用). -* [nix-shell](https://github.com/loophp/nix-shell/) - 用于 PHP 开发的 Nix shell. +* [composer2nix](https://github.com/svanderburg/composer2nix) - Generate Nix expressions to build composer packages. +* [composer-plugin-nixify](https://github.com/stephank/composer-plugin-nixify) - Composer plugin to help with Nix packaging. +* [composition-c4](https://github.com/fossar/composition-c4) - Support for building composer packages from a `composer.lock` (using IFD). +* [nix-phps](https://github.com/fossar/nix-phps) - Flake containing old and unmaintained PHP versions (intended for CI use). +* [nix-shell](https://github.com/loophp/nix-shell/) - Nix shells for PHP development. ### PureScript -* [Easy PureScript Nix](https://github.com/justinwoo/easy-purescript-nix) - 一个通过 Nix 轻松使用 PureScript 和其他工具的项目. -* [purs-nix](https://github.com/purs-nix/purs-nix) - CLI 和库组合设计用于使用 Nix 管理 PureScript 项目. 它提供了可在您的项目中使用的 Nix API,以及用于管理开发过程的命令行界面. +* [Easy PureScript Nix](https://github.com/justinwoo/easy-purescript-nix) - A project to easily use PureScript and other tools with Nix. +* [purs-nix](https://github.com/purs-nix/purs-nix) - CLI and library combo designed for managing PureScript projects using Nix. It provides a Nix API that can be used within your projects, as well as a command-line interface for managing your development process. ### Python -* [pip2nix](https://github.com/nix-community/pip2nix) - 与存储库无关的 Python 包生成器工具. -* [poetry2nix](https://github.com/nix-community/poetry2nix) - 直接构建Python包 [Poetry's](https://python-poetry.org/) `诗.锁`. 无需转换步骤. +* [pip2nix](https://github.com/nix-community/pip2nix) - A repository-agnostic Python package generator tool. +* [poetry2nix](https://github.com/nix-community/poetry2nix) - Build Python packages directly from [Poetry's](https://python-poetry.org/) `poetry.lock`. No conversion step needed. ### Ruby -* [Bundix](https://github.com/nix-community/bundix) - 为 Bundler 管理的应用程序生成 Nix 表达式. -* [ruby-nix](https://github.com/sagittaros/ruby-nix) - 使用 Nix 生成可重现的 ruby/bundler 应用程序环境. +* [Bundix](https://github.com/nix-community/bundix) - Generates a Nix expression for your Bundler-managed application. +* [ruby-nix](https://github.com/sagittaros/ruby-nix) - Generates reproducible ruby/bundler app environment with Nix. ### Rust -* [cargo2nix](https://github.com/cargo2nix/cargo2nix) - 粒度缓存、开发 shell、Nix 和 Rust 集成. -* [crane](https://github.com/ipetkov/crane) - 用于构建具有增量工件缓存的 Cargo 项目的 Nix 库. -* [fenix](https://github.com/nix-community/fenix) - Rust 工具链和 Rust 分析器每晚适用于 nix. -* [naersk](https://github.com/nmattia/naersk) - 直接从“Cargo.lock”构建 Rust 包. 无需转换步骤. -* [nix-cargo-integration](https://github.com/yusdacra/nix-cargo-integration) - 一个可以轻松轻松地集成 Cargo 项目的库. -* [nixpkgs-mozilla](https://github.com/mozilla/nixpkgs-mozilla) - Mozilla 与 Rust 工具链和 Firefox 的叠加. -* [rust-nix-templater](https://github.com/yusdacra/rust-nix-templater) - 为 Rust 项目生成 Nix 构建和开发文件. -* [rust-overlay](https://github.com/oxalica/rust-overlay) - 二进制分布式 Rust 工具链的纯且可复制的 nix 覆盖. +* [cargo2nix](https://github.com/cargo2nix/cargo2nix) - Granular caching, development shell, Nix & Rust integration. +* [crane](https://github.com/ipetkov/crane) - A Nix library for building Cargo projects with incremental artifact caching. +* [fenix](https://github.com/nix-community/fenix) - Rust toolchains and Rust analyzer nightly for nix. +* [naersk](https://github.com/nmattia/naersk) - Build Rust packages directly from `Cargo.lock`. No conversion step needed. +* [nix-cargo-integration](https://github.com/yusdacra/nix-cargo-integration) - A library that allows easy and effortless integration for Cargo projects. +* [nixpkgs-mozilla](https://github.com/mozilla/nixpkgs-mozilla) - Mozilla's overlay with Rust toolchains and Firefox. +* [rust-nix-templater](https://github.com/yusdacra/rust-nix-templater) - Generates Nix build and development files for Rust projects. +* [rust-overlay](https://github.com/oxalica/rust-overlay) - Pure and reproducible nix overlay of binary distributed Rust toolchains. ### Scala -* [sbt-derivation](https://github.com/zaninime/sbt-derivation) - sbt 的 mkDerivation,类似于 buildGoModule. +* [sbt-derivation](https://github.com/zaninime/sbt-derivation) - mkDerivation for sbt, similar to buildGoModule. + +### Zig + +* [zon2nix](https://github.com/nix-community/zon2nix) - Convert the dependencies in `build.zig.zon` to a Nix expression. ## NixOS Modules -* [base16.nix](https://github.com/SenchoPens/base16.nix) - 主题节目的片状方式 [base16](https://github.com/chriskempson/base16) 包括颜色方案、胡子模板支持. -* [Home Manager](https://github.com/nix-community/home-manager) - 像 NixOS 一样管理您的用户配置. -* [musnix](https://github.com/musnix/musnix) - 在 NixOS 中进行实时音频工作. -* [nixcloud-webservices](https://github.com/nixcloud/nixcloud-webservices) - Nixpkgs 扩展,重点是易于部署网络相关技术. -* [NixVim](https://github.com/pta2002/nixvim) - 使用 Nix 模块和 Nixpkg 构建的 NeoVim 发行版. -* [Simple Nixos Mailserver](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver) - 一个完整的邮件服务器,使用 NixOS 模块进行管理. -* [Stylix](https://github.com/danth/stylix) - NixOS 的系统范围配色和排版. -* [nix-bitcoin](https://github.com/fort-nix/nix-bitcoin) - 具有更高层协议的比特币节点模块和包,强调安全性. +* [base16.nix](https://github.com/SenchoPens/base16.nix) - Flake way to theme programs in [base16](https://github.com/chriskempson/base16) colorschemes, mustache template support included. +* [Home Manager](https://github.com/nix-community/home-manager) - Manage your user configuration just like NixOS. +* [musnix](https://github.com/musnix/musnix) - Do real-time audio work in NixOS. +* [nixcloud-webservices](https://github.com/nixcloud/nixcloud-webservices) - A Nixpkgs extension with a focus on ease of deployment of web-related technologies. +* [NixVim](https://github.com/pta2002/nixvim) - A NeoVim distribution built with Nix modules and Nixpkgs. +* [Simple Nixos Mailserver](https://gitlab.com/simple-nixos-mailserver/nixos-mailserver) - A complete mailserver, managed with NixOS modules. +* [Stylix](https://github.com/danth/stylix) - System-wide colorscheming and typography for NixOS. +* [nix-bitcoin](https://github.com/fort-nix/nix-bitcoin) - Modules and packages for Bitcoin nodes with higher-layer protocols with an emphasis on security. ## NixOS Configuration Editors ### Desktop apps -* [NixOS Configuration Editor](https://github.com/vlinkz/nixos-conf-editor) - NixOS 配置的图形编辑器. Rust 和 GTK 中的桌面应用程序. -* [Nix Software Center](https://github.com/vlinkz/nix-software-center) - 安装和管理 Nix 软件包. Rust 和 GTK 中的桌面应用程序. +* [NixOS Configuration Editor](https://github.com/vlinkz/nixos-conf-editor) - Graphical editor for NixOS configuration. Desktop app in Rust and GTK. +* [Nix Software Center](https://github.com/vlinkz/nix-software-center) - Install and manage Nix packages. Desktop app in Rust and GTK. ### Webinterface -* [MyNixOS](https://mynixos.com/) - Nix 薄片的图形编辑器. 创建和管理 NixOS 和 Nix home-manager 的配置和模块. 与其说是 Nix 编辑器,不如说是 Nix 生成器,因为它不允许导入 Nix 文件. +* [MyNixOS](https://mynixos.com/) - Graphical editor for Nix flakes. Create and manage configurations and modules for NixOS and Nix home-manager. Rather a Nix generator than a Nix editor, because it does not allow to import Nix files. ## Overlays -* [awesome-nix-hpc](https://github.com/freuk/awesome-nix-hpc) - 高性能计算包集. -* [chaotic-nyx](https://github.com/chaotic-cx/nyx) - 每日更新诸如“mesa_git”之类的前沿软件包以及其他尚未包含在 Nixpkgs 中的软件包. 由制作者创建 [Chaotic-AUR](https://github.com/chaotic-aur/). -* [nix-darwin](https://github.com/LnL7/nix-darwin) - 管理 macOS 配置,就像在 NixOS 上一样. -* [nixpkgs-firefox-darwin](https://github.com/bandithedoge/nixpkgs-firefox-darwin) - 自动更新适用于 macOS 的 Firefox 二进制包. -* [nixpkgs-wayland](https://github.com/nix-community/nixpkgs-wayland) - 尖端的 Wayland 软件包. -* [NUR](https://github.com/nix-community/NUR/) - Nix 用户存储库. 所有覆盖层之母,允许访问用户存储库并通过属性安装包. +* [awesome-nix-hpc](https://github.com/freuk/awesome-nix-hpc) - High Performance Computing package sets. +* [chaotic-nyx](https://github.com/chaotic-cx/nyx) - Daily bumped bleeding edge packages like `mesa_git` & others that aren't yet in Nixpkgs. Created by the makers of [Chaotic-AUR](https://github.com/chaotic-aur/). +* [nix-darwin](https://github.com/LnL7/nix-darwin) - Manage macOS configuration just like on NixOS. +* [nixpkgs-firefox-darwin](https://github.com/bandithedoge/nixpkgs-firefox-darwin) - Automatically updated Firefox binary packages for macOS. +* [nixpkgs-wayland](https://github.com/nix-community/nixpkgs-wayland) - Bleeding-edge Wayland packages. +* [NUR](https://github.com/nix-community/NUR/) - Nix User Repositories. The mother of all overlays, allowing access to user repositories and installing packages via attributes. ## Community * [#nix:nixos.org](https://matrix.to/#/#nix:nixos.org) * [#nixos on Libera.Chat](https://web.libera.chat/?nick=Guest?#nixos) * [Discord - Nix/Nixos (Unofficial)](https://discord.gg/BMUCQx6) -* [Discourse](https://discourse.nixos.org/) - 获得帮助和讨论 Nix 相关主题的最佳场所. -* [NixCon](https://nixcon.org/) - Nix 和 NixOS 的贡献者和用户的年度社区会议. +* [Discourse](https://discourse.nixos.org/) - The best place to get help and discuss Nix-related topics. +* [NixCon](https://nixcon.org/) - The annual community conference for contributors and users of Nix and NixOS. * [Wiki (Unofficial)](https://nixos.wiki) diff --git a/docs/awesome/awesome-tailwindcss.md b/docs/awesome/awesome-tailwindcss.md index f8dca11f18..f2c36745b0 100644 --- a/docs/awesome/awesome-tailwindcss.md +++ b/docs/awesome/awesome-tailwindcss.md @@ -302,6 +302,7 @@ - 🧩 [NativeWind](https://www.nativewind.dev) - NativeWind uses Tailwind CSS as scripting language to create a universal style system for React Native. - 🧩 [Windstatic](https://windstatic.com) - Set of 161 elements & layouts made with Tailwind CSS and Alpine.js. - 🧩 [TailwindFlex](https://tailwindflex.com) - Free library of Tailwind CSS examples. +- 🧩 [Shadcn UI](https://ui.shadcn.com) - Re-usable components built using Radix UI and Tailwind CSS. - 📁 [Vue Notus](https://www.creative-tim.com/product/vue-notus) - Open-source Tailwind CSS and Vue.js UI kit. - 📁 [Red Pixel Themes](https://redpixelthemes.com/) - Paid, developer-friendly templates made with Tailwind CSS. - 📁 [EasyTailwind](https://easytailwind.now.sh) - Freemium, easily customizable templates made with Tailwind CSS.