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
7 changes: 6 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [0.4.5] - 2026-02-20

### Fixed
- Regenerate Node.js `package-lock.json` to fix npm release CI failures (#67)
- Add CodeQL security scanning workflow
- Make entity resolution bozo-tolerant: `resolve_entity` preserves malformed entities as-is instead of failing (#64)
- Propagate bozo flag from `read_text` when encountering unresolvable entities in feed-level fields (#64)

Expand Down Expand Up @@ -214,7 +218,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Comprehensive test coverage
- Documentation with examples

[Unreleased]: https://github.com/bug-ops/feedparser-rs/compare/v0.4.4...HEAD
[Unreleased]: https://github.com/bug-ops/feedparser-rs/compare/v0.4.5...HEAD
[0.4.5]: https://github.com/bug-ops/feedparser-rs/compare/v0.4.4...v0.4.5
[0.4.4]: https://github.com/bug-ops/feedparser-rs/compare/v0.4.3...v0.4.4
[0.4.3]: https://github.com/bug-ops/feedparser-rs/compare/v0.4.2...v0.4.3
[0.4.2]: https://github.com/bug-ops/feedparser-rs/compare/v0.4.1...v0.4.2
Expand Down
6 changes: 3 additions & 3 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ members = [
resolver = "2"

[workspace.package]
version = "0.4.4"
version = "0.4.5"
edition = "2024"
rust-version = "1.88.0"
authors = ["bug-ops"]
Expand Down
12 changes: 4 additions & 8 deletions crates/feedparser-rs-node/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,7 @@ yarn add feedparser-rs
pnpm add feedparser-rs
```

> [!IMPORTANT]
> Requires Node.js 18 or later.
> **Important:** Requires Node.js 18 or later.

## Quick Start

Expand Down Expand Up @@ -65,8 +64,7 @@ console.log(feed.feed.title);
console.log(`Fetched ${feed.entries.length} entries`);
```

> [!TIP]
> `fetchAndParse` automatically handles compression (gzip, deflate, brotli) and follows redirects.
> **Tip:** `fetchAndParse` automatically handles compression (gzip, deflate, brotli) and follows redirects.

### Parsing from Buffer

Expand Down Expand Up @@ -170,8 +168,7 @@ interface Entry {
}
```

> [!NOTE]
> See `index.d.ts` for complete type definitions including `Link`, `Person`, `Tag`, `Image`, `Enclosure`, and more.
> **Note:** See `index.d.ts` for complete type definitions including `Link`, `Person`, `Tag`, `Image`, `Enclosure`, and more.

## Error Handling

Expand Down Expand Up @@ -217,8 +214,7 @@ Benchmarks on Apple M1 Pro:
| Parse 20 KB RSS | 0.09 ms | 8.5 ms | **94x** |
| Parse 200 KB RSS | 0.94 ms | 85 ms | **90x** |

> [!TIP]
> For best performance, pass `Buffer` instead of `string` to avoid UTF-8 conversion overhead.
> **Tip:** For best performance, pass `Buffer` instead of `string` to avoid UTF-8 conversion overhead.

## Platform Support

Expand Down
4 changes: 2 additions & 2 deletions crates/feedparser-rs-node/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion crates/feedparser-rs-node/package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "feedparser-rs",
"version": "0.4.4",
"version": "0.4.5",
"description": "High-performance RSS/Atom/JSON Feed parser for Node.js",
"main": "index.js",
"types": "index.d.ts",
Expand Down
12 changes: 4 additions & 8 deletions crates/feedparser-rs-py/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,7 @@ High-performance RSS/Atom/JSON Feed parser for Python with feedparser-compatible
pip install feedparser-rs
```

> [!IMPORTANT]
> Requires Python 3.10 or later.
> **Important:** Requires Python 3.10 or later.

## Usage

Expand Down Expand Up @@ -52,8 +51,7 @@ for entry in d.entries:
print(entry.published_parsed) # time.struct_time
```

> [!NOTE]
> Date fields like `published_parsed` return `time.struct_time` for feedparser compatibility.
> **Note:** Date fields like `published_parsed` return `time.struct_time` for feedparser compatibility.

### Fetching from URL

Expand All @@ -80,8 +78,7 @@ limits = feedparser_rs.ParserLimits(max_entries=100)
d = feedparser_rs.parse_with_limits('https://example.com/feed.xml', limits=limits)
```

> [!TIP]
> URL fetching supports automatic compression (gzip, deflate, brotli) and follows redirects.
> **Tip:** URL fetching supports automatic compression (gzip, deflate, brotli) and follows redirects.

## Migration from feedparser

Expand Down Expand Up @@ -195,8 +192,7 @@ Benchmarks vs Python feedparser on Apple M1 Pro:
| Parse 20 KB RSS | 0.09 ms | 8.5 ms | **94x** |
| Parse 200 KB RSS | 0.94 ms | 85 ms | **90x** |

> [!TIP]
> For maximum performance, pass `bytes` instead of `str` to avoid UTF-8 re-encoding.
> **Tip:** For maximum performance, pass `bytes` instead of `str` to avoid UTF-8 re-encoding.

## Platform Support

Expand Down
Loading