52719d1a7c
- Migrated all package tsconfig files to extend tsconfig.workspace.json for unified TypeScript configuration across monorepo. - Consolidated build and check scripts across 10+ packages to use biome for linting/formatting with separate type checking via tsgo. - Renamed build scripts from build:native and build:binary to build for simplified command naming across packages/natives and packages/coding-agent. - Refactored CI workflow to invoke bun tasks instead of inline shell scripts, reducing workflow complexity by 40+ lines. - Removed sync-exports.ts and repro-stuck.ts scripts; deleted path aliases from tsconfig.base.json in favor of workspace-based configuration. - Updated turbo.json with new task definitions (check:types, lint, fmt, fix) and removed build:native/embed:native tasks.
62 lines
1.6 KiB
Markdown
62 lines
1.6 KiB
Markdown
# @oh-my-pi/pi-natives
|
|
|
|
Native Rust functionality via N-API.
|
|
|
|
## What's Inside
|
|
|
|
- **Grep**: Regex-based search powered by ripgrep's engine with native file walking and matching
|
|
- **Find**: Glob-based file/directory discovery with gitignore support (pure TypeScript via `globPaths`)
|
|
- **Image**: Image processing via photon-rs (resize, format conversion) exposed through N-API
|
|
|
|
## Usage
|
|
|
|
```typescript
|
|
import { grep, find, PhotonImage, SamplingFilter, ImageFormat } from "@oh-my-pi/pi-natives";
|
|
|
|
// Grep for a pattern
|
|
const results = await grep({
|
|
pattern: "TODO",
|
|
path: "/path/to/project",
|
|
glob: "*.ts",
|
|
context: 2,
|
|
});
|
|
|
|
// Find files
|
|
const files = await find({
|
|
pattern: "*.rs",
|
|
path: "/path/to/project",
|
|
fileType: "file",
|
|
});
|
|
|
|
// Image processing
|
|
const image = await PhotonImage.parse(bytes);
|
|
const resized = await image.resize(800, 600, SamplingFilter.Lanczos3);
|
|
const pngBytes = await resized.encode(ImageFormat.PNG, 100);
|
|
```
|
|
|
|
## Building
|
|
|
|
```bash
|
|
# Build native addon from workspace root (requires Rust)
|
|
bun run build
|
|
|
|
# Type check
|
|
bun run check
|
|
```
|
|
|
|
## Architecture
|
|
|
|
```
|
|
crates/pi-natives/ # Rust source (workspace member)
|
|
src/lib.rs # N-API exports
|
|
src/image.rs # Image processing (photon-rs)
|
|
Cargo.toml # Rust dependencies
|
|
native/ # Native addon binaries
|
|
pi_natives.<platform>-<arch>-modern.node # x64 modern ISA (AVX2)
|
|
pi_natives.<platform>-<arch>-baseline.node # x64 baseline ISA
|
|
pi_natives.<platform>-<arch>.node # non-x64 build artifact
|
|
src/ # TypeScript wrappers
|
|
native.ts # Native addon loader
|
|
index.ts # Public API
|
|
```
|