Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: CodeQL

on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
- cron: "23 3 * * 1"
workflow_dispatch:

permissions:
contents: read

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
analyze:
name: Analyze ${{ matrix.language }}
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
contents: read
security-events: write # Upload CodeQL results for this job only.
strategy:
fail-fast: false
matrix:
language: [python, rust, actions]
steps:
- name: Check out source
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false

- name: Initialise CodeQL
uses: github/codeql-action/init@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4
with:
languages: ${{ matrix.language }}
build-mode: none

- name: Perform CodeQL analysis
uses: github/codeql-action/analyze@6f2ac81f5cd81fe351a197ba0b00d91d03cd2aee # v4
with:
category: "/language:${{ matrix.language }}"
24 changes: 24 additions & 0 deletions CITATION.cff
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
cff-version: 1.2.0
message: "If you use this work, cite it with this metadata and the release tag or commit you used."
title: "PlutarchPages"
type: software
authors:
- name: "EquityBot"
abstract: "A clean-room PDF application in pure Rust, aiming at Adobe Acrobat Pro parity. A fork of PdfCraft."
repository-code: "https://github.com/EquityBot/PlutarchPages"
license-url: "https://github.com/EquityBot/PlutarchPages/blob/main/README.md#license-and-credits"
keywords:
- desktop-app
- pdf
- pdf-editor
- pdf-tools
- pdf-viewer
- pdfcraft
- redaction
- rust
references:
- type: software
title: "PdfCraft"
authors:
- name: "ArtCraft Team and the PdfCraft contributors"
repository-code: "https://github.com/storytold/pdfcraft"
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,19 @@
</picture>
</p>

<div align="center">

[![tests](https://img.shields.io/github/actions/workflow/status/EquityBot/PlutarchPages/ci.yml?branch=main&label=tests&labelColor=000000&style=flat)](https://github.com/EquityBot/PlutarchPages/actions/workflows/ci.yml) [![CodeQL](https://img.shields.io/github/actions/workflow/status/EquityBot/PlutarchPages/codeql.yml?branch=main&label=CodeQL&labelColor=000000&style=flat)](https://github.com/EquityBot/PlutarchPages/actions/workflows/codeql.yml)<br>
[![rust: 1.90+](https://img.shields.io/badge/rust-1.90%2B-66023C?labelColor=000000&style=flat&color=66023C)](https://www.rust-lang.org/) [![licence: MIT OR Apache-2.0](https://img.shields.io/badge/licence-MIT%20OR%20Apache--2.0-66023C?labelColor=000000&style=flat&color=66023C)](#license-and-credits) [![fork of: PdfCraft](https://img.shields.io/badge/fork%20of-PdfCraft-66023C?labelColor=000000&style=flat&color=66023C)](https://github.com/storytold/pdfcraft)

</div>

<p align="center">
<b>The PDF workbench; an open-source, clean-room reimplementation of Adobe Acrobat, rebuilt in pure Rust.</b><br>
Read, organize, combine, split and secure PDFs in a fast, native app, written in Rust from the ground up.<br>
macOS · Windows · Linux · FreeBSD · the web
</p>

<p align="center">
<img alt="License: MIT OR Apache-2.0" src="https://img.shields.io/badge/license-MIT%20OR%20Apache--2.0-66023C?style=flat&labelColor=000000&color=66023C">
<img alt="Written in Rust" src="https://img.shields.io/badge/written%20in-Rust-66023C?style=flat&labelColor=000000&color=66023C">
<img alt="Platforms: macOS, Windows, Linux, FreeBSD, web" src="https://img.shields.io/badge/runs%20on-macOS%20%C2%B7%20Windows%20%C2%B7%20Linux%20%C2%B7%20FreeBSD%20%C2%B7%20web-66023C?style=flat&labelColor=000000&color=66023C">
<img alt="No account, no telemetry" src="https://img.shields.io/badge/no%20account-no%20telemetry-66023C?style=flat&labelColor=000000&color=66023C">
</p>

> [!NOTE]
> **PlutarchPages is a fork of [PdfCraft](https://github.com/storytold/pdfcraft) by the ArtCraft team.** It adds
> the fixes and converters listed under [Fork changes](#fork-changes). It is not an ArtCraft product, and the
Expand Down
40 changes: 40 additions & 0 deletions llms.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# PlutarchPages

> A fork of PdfCraft: a clean-room PDF application in pure Rust for macOS, Windows, Linux, FreeBSD
> and the web, aiming at Adobe Acrobat Pro parity. It is alpha: pages are still drawn by the `hayro`
> crate, and editing existing text, OCR beyond Latin script and Office import and export are thin or missing.

This fork publishes no builds of its own; build it from source with Rust 1.90 or later, for example
`git clone https://github.com/EquityBot/PlutarchPages` and then
`cargo run --release -p pdfcraft -- some.pdf`. The program, crates and binaries keep their `pdfcraft` names.

## Start

- [README](https://github.com/EquityBot/PlutarchPages#readme): features, fork changes, getting started and licence.
- [Development](https://github.com/EquityBot/PlutarchPages/blob/main/docs/development.md): environment variables, logs and diagnostics.
- [Roadmap summary](https://github.com/EquityBot/PlutarchPages/blob/main/ROADMAP.md): stage, parity numbers and progress log.

## Docs

- [Architecture](https://github.com/EquityBot/PlutarchPages/blob/main/docs/architecture.md): how the crates are built and layered today.
- [Gaps](https://github.com/EquityBot/PlutarchPages/blob/main/docs/gaps.md): known shortfalls against Acrobat Pro, ranked.
- [Parity with Acrobat Pro](https://github.com/EquityBot/PlutarchPages/blob/main/docs/target-app-parity.md): the overall assessment and how it is measured.
- [Milestones](https://github.com/EquityBot/PlutarchPages/blob/main/docs/roadmap.md): milestones and current focus.
- [MCP conventions](https://github.com/EquityBot/PlutarchPages/blob/main/docs/mcp.md): the opt-in `pdfcraft-cli mcp` server.
- [Interface language](https://github.com/EquityBot/PlutarchPages/blob/main/docs/localization.md): choosing the interface language and what each catalogue covers.
- [Editing images](https://github.com/EquityBot/PlutarchPages/blob/main/docs/editing-images.md): moving, resizing and deleting figures.
- [Editing several objects](https://github.com/EquityBot/PlutarchPages/blob/main/docs/editing-multiple-objects.md): moving several objects together.
- [File format parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/file-format-parity.md): formats read and written.
- [PDF specification parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/pdf-spec-parity.md): ISO 32000-2 and subset standards coverage.
- [UI parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/ui-parity.md): tools, panels and shortcuts against Acrobat Pro.
- [Hardware and platform parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/hardware-parity.md): hardware features per platform.
- [Localization parity](https://github.com/EquityBot/PlutarchPages/blob/main/docs/localization-parity.md): per-language interface status.
- [Contributors](https://github.com/EquityBot/PlutarchPages/blob/main/docs/contributors.md): how the About window credits contributors.
- [Releasing](https://github.com/EquityBot/PlutarchPages/blob/main/docs/releasing.md): the release workflow.
- [Attribution](https://github.com/EquityBot/PlutarchPages/blob/main/ATTRIBUTION.md): every bundled asset with its author, source and licence.
- [Agent and contributor rules](https://github.com/EquityBot/PlutarchPages/blob/main/AGENTS.md): asset, clean-room and safety rules.

## Related

- [EquityBot](https://github.com/EquityBot): other EquityBot tools.
- [PdfCraft](https://github.com/storytold/pdfcraft): the upstream project.
Loading