Github 开源yliyun精选001

分享 GitHub 上有趣、入门级的开源项目。

1、mpv播放器:功能强大、免费开源、支持多平台的极简播放器。

底层采用了 MPlayer、mplayer2 和 FFmpeg 等开源项目,支持多种音视频格式、高清视频、GPU 解码、自定义等功能,追求极简的命令行启动+快捷键操作方式,让它成为了技术爱好者的首选视频播放器。(暂时不支持网页版——一粒云测试)

程序员的开源月刊《HelloGitHub》第 69 期

2、cutter:一款免费开源的逆向工程平台。

采用 Rizin 作为核心引擎并集成了 Ghidra 反编译器,它界面简洁功能强大,深受逆向工程师们的喜爱

  • 支持多种语言和主题
  • 二进制搜索
  • 十六进制编辑器
  • Python 脚本和插件
  • 支持 Linux、macOS、Windows
程序员的开源月刊《HelloGitHub》第 69 期

3、heti专为中文内容展示设计的排版样式。它会让你的中文网站变得好看

  • 贴合网格的排版
  • 全标签样式美化
  • 预置多种排版样式
  • 简/繁体中文支持
  • 移动端支持
程序员的开源月刊《HelloGitHub》第 69 期

4、arco-design:基于 ArcoDesign 的 React/Vue UI 组件库(字节跳动出品)。

包含 60 多个开箱即用的高质量组件,还提供了可视化的样式配置平台,可用于快速构建企业级管理后台

import React from 'react';
import ReactDOM from 'react-dom';
import { Button } from '@arco-design/web-react';
import '@arco-design/web-react/dist/css/arco.css';

function App() {
  return (
    <Button type='secondary'>
      Hello World
    </Button>
  );
}

ReactDOM.render(<App ></App>, document.getElementById('app'));
程序员的开源月刊《HelloGitHub》第 69 期

5、prisma:适用于 Node.js 和 TypeScript 的 ORM

支持主流数据库可用于开发 REST API、GraphQL API、gRPC API 等任何需要连接数据库的程序,项目还包括了数据迁移工具和管理数据的 GUI 工具

import { PrismaClient } from '@prisma/client'

const prisma = new PrismaClient()

// A `main` function so that you can use async/await
async function main() {
  const allUsers = await prisma.user.findMany({
    include: { posts: true },
  })
  // use `console.dir` to print nested objects
  console.dir(allUsers, { depth: null })
}

main()
  .catch((e) => {
    throw e
  })
  .finally(async () => {
    await prisma.$disconnect()
  })
程序员的开源月刊《HelloGitHub》第 69 期

6、PHPWord:提供了读/写多种文档文件格式的 PHP 库。

支持 Microsoft Office、富文本(RTF)等文档格式

<?php
require_once 'bootstrap.php';

// 新建文档
$phpWord = new \PhpOffice\PhpWord\PhpWord();

// Adding an empty Section to the document...
$section = $phpWord->addSection();
// Adding Text element to the Section having font styled by default...
$section->addText(
    '"Learn from yesterday, live for today, hope for tomorrow. '
        . 'The important thing is not to stop questioning." '
        . '(Albert Einstein)'
);

7、 orjson :更快更强的 Python JSON 库

支持比如日期、numpy 数组等丰富的数据类型,而且速度更快

>>> import orjson, datetime, numpy
>>> data = {
    "type": "job",
    "created_at": datetime.datetime(1970, 1, 1),
    "status": "",
    "payload": numpy.array([[1, 2], [3, 4]]),
}
>>> orjson.dumps(data, option=orjson.OPT_NAIVE_UTC | orjson.OPT_SERIALIZE_NUMPY)
b'{"type":"job","created_at":"1970-01-01T00:00:00+00:00","status":"\xf0\x9f\x86\x97","payload":[[1,2],[3,4]]}'
>>> orjson.loads(_)
{'type': 'job', 'created_at': '1970-01-01T00:00:00+00:00', 'status': '', 'payload': [[1, 2], [3, 4]]}

8、tiler:将图片转化成各种较小图块拼接成的图像工具。

马赛克风格的图片转化工具,支持自定义拼接图案和符号。工具实用方便、代码简单易懂,适合对图像感兴趣的小伙伴学习和上手

程序员的开源月刊《HelloGitHub》第 69 期

9、rumps:简单的 macOS 状态栏 Python 库

import rumps

class AwesomeStatusBarApp(rumps.App):
    @rumps.clicked("Preferences")
    def prefs(self, _):
        rumps.alert("jk! no preferences available!")

    @rumps.clicked("Silly button")
    def onoff(self, sender):
        sender.state = not sender.state

    @rumps.clicked("Say hi")
    def sayhi(self, _):
        rumps.notification("Awesome title", "amazing subtitle", "hi!!1")

if __name__ == "__main__":
    AwesomeStatusBarApp("Awesome App").run()
程序员的开源月刊《HelloGitHub》第 69 期