跳转至

2025 年

uv 快速入门指南

uv 是一款由 Astral 团队(创始人 Charlie Marsh)使用 Rust 语言开发的高性能 Python 包管理器。它旨在解决传统工具如 pip 和 venv 在依赖解析、安装速度和整体效率上的瓶颈。

作为 Python 生态的现代化核心组件,uv 不仅提供数倍于 pip 的安装速度,还支持无缝兼容现有工具(如 pip、poetry 和 setuptools),让开发者能轻松过渡到高效的工作流。

无论你是初学者还是资深开发者,uv 都能简化项目管理、减少环境冲突,并加速开发迭代。

安装 uv

uv 的安装过程简单快捷,支持多种方式。推荐使用脚本安装,以获取最新版本和自动配置。

通过安装脚本

curl -LsSf https://astral.sh/uv/install.sh | sh

此命令会下载并执行安装脚本,将 uv 添加到你的 PATH 中。安装后,重启终端或运行 source ~/.bashrc(或对应 shell 配置)以生效。

Opus 音频编解码器:libopus API 实用指南

Opus 是一种高度高效的开源音频编解码器,由 IETF(互联网工程任务组)标准化开发。它以卓越的压缩效率、低延迟和高音质著称,尤其适合实时应用。Opus 支持宽带到全带宽的音频(6-20 kHz),并能无缝处理从语音到音乐的各种内容。libopus 是其核心 C 语言实现库,轻量级且跨平台,支持嵌入式设备到高性能服务器。

使用场景

Opus 在以下领域广泛应用:

  • 实时通信:如 VoIP(Voice over IP,例如 WebRTC 中的语音聊天)、视频会议和游戏内语音,确保低延迟传输。
  • 流媒体:在线音乐流、播客和视频平台(如 YouTube),平衡带宽与音质。
  • 存储与归档:音频文件压缩(如 Ogg Opus 容器),用于移动设备或云存储,节省空间。
  • 嵌入式系统:IoT 设备、智能音箱或无人机音频处理,支持 ARM 等架构。

与其他编解码器(如 AAC 或 MP3)相比,Opus 在低比特率下表现出色(例如 12-64 kbps),并内置前向纠错(FEC)和丢包隐藏机制,适合不稳定网络。

vcpkg快速入门指南

Vcpkg 是由 Microsoft 和 C++ 社区维护的免费开源 C/C++ 包管理器,可在 Windows、macOS 和 Linux 上运行。 它是核心的 C++ 工具,使用 C++ 和 CMake 脚本编写。 它旨在解决管理 C/C++ 库的独特难题。

为什么使用 vcpkg?

  • 在特选注册表中有超过2300 个开源库可供选择,这些库会定期生成,用于验证 ABI 兼容性
  • 支持使用自己的自定义库包创建自定义库注册表
  • 适用于 Windows、macOS 和 Linux 的一致的跨平台体验
  • 使用任何生成和项目系统都可以轻松将库添加到项目
  • 从源生成依赖项或下载预生成的 ABI 验证二进制文件,默认提供 70 多个配置,并可针对特定要求进行无限自定义
  • 通过独特的版本控制设计,防止依赖项之间出现版本冲突和菱形依赖问题
  • 对于 MSBuild 和 CMake 用户:自动与生成环境集成,打造无缝获取依赖项的体验

从零开始写一个哈希表

这篇笔记是对教程:write a hash table 的学习总结。该教程使用C语言,从零开始实现了一个哈希表,教程中哈希表实现使用了开放地址法双重哈希等技术。本篇笔记中部分内容对原教程进行了拓展。

什么是哈希表?

哈希表(Hash Table)是一种基于键值对(Key-Value)存储的高效数据结构,通过哈希函数(Hash Function)将键(Key)映射到数组的特定位置(桶),从而实现平均 O(1) 时间复杂度的插入、查找和删除操作。

下面是基于哈希表存储电话簿的结构图: