Skip to main content

High performance RSS, Atom and RDF parser in Python

Project description

FastFeedParser

A high-performance RSS, Atom, and RDF feed parser for Python. FastFeedParser is designed to be fast, memory-efficient, and easy to use while providing comprehensive feed parsing capabilities.

Why FastFeedParser?

The main advantage of FastFeedParser over the traditional feedparser library is its lightweight design and exceptional performance - benchmarks show it's 10x-100x faster than feedparser while maintaining a familiar API. This dramatic speed improvement is achieved through:

  • Efficient XML parsing using lxml
  • Optimized memory usage
  • Minimal dependencies
  • Streamlined codebase focused on core functionality

FastFeedParser is used for high performance processing of thousands of feeds for Kagi Small Web initiative.

Features

  • Fast parsing of RSS 2.0, Atom 1.0, and RDF/RSS 1.0 feeds
  • Robust error handling and encoding detection
  • Support for media content and enclosures
  • Automatic date parsing with timezone handling
  • Clean, Pythonic API similar to feedparser
  • Comprehensive handling of feed metadata
  • Support for various feed extensions (Media RSS, Dublin Core, etc.)

Installation

pip install fastfeedparser

Quick Start

import fastfeedparser

# Parse from URL
myfeed = fastfeedparser.parse('https://example.com/feed.xml')

# Parse from string
xml_content = '''<?xml version="1.0"?>
<rss version="2.0">
    <channel>
        <title>Example Feed</title>
        ...
    </channel>
</rss>'''
myfeed = fastfeedparser.parse(xml_content)

# Access feed global information
print(myfeed.feed.title)
print(myfeed.feed.link)

# Access feed entries
for entry in myfeed.entries:
    print(entry.title)
    print(entry.link)
    print(entry.published)

Key Features

Feed Types Support

  • RSS 2.0
  • Atom 1.0
  • RDF/RSS 1.0

Content Handling

  • Automatic encoding detection
  • HTML content parsing
  • Media content extraction
  • Enclosure handling

Metadata Support

  • Feed title, link, and description
  • Publication dates
  • Author information
  • Categories and tags
  • Media content and thumbnails

API Reference

Main Functions

  • parse(source): Parse feed from a source that can be URL or a string

Feed Object Structure

The parser returns a FastFeedParserDict object with two main sections:

  • feed: Contains feed-level metadata
  • entries: List of feed entries

Each entry contains:

  • title: Entry title
  • link: Entry URL
  • description: Entry description/summary
  • published: Publication date
  • author: Author information
  • content: Full content
  • media_content: Media attachments
  • enclosures: Attached files

Requirements

  • Python 3.7+
  • httpx
  • lxml
  • parsedatetime
  • python-dateutil

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Acknowledgments

Inspired by the Universal Feed Parser (feedparser) project, FastFeedParser aims to provide a modern, high-performance alternative while maintaining a familiar API.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

fastfeedparser-0.2.1.tar.gz (10.5 kB view details)

Uploaded Source

Built Distribution

fastfeedparser-0.2.1-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file fastfeedparser-0.2.1.tar.gz.

File metadata

  • Download URL: fastfeedparser-0.2.1.tar.gz
  • Upload date:
  • Size: 10.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for fastfeedparser-0.2.1.tar.gz
Algorithm Hash digest
SHA256 29c9c090ccf9dbf29a575959067bc0f621f2bc3eae3062fe82db4d190b075c02
MD5 045b200c7729ce6e9aa920150a8f064a
BLAKE2b-256 bde70992f4cabbb44903143cfc10e4aa600a6adea724480ad701fff465c10eee

See more details on using hashes here.

File details

Details for the file fastfeedparser-0.2.1-py3-none-any.whl.

File metadata

File hashes

Hashes for fastfeedparser-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 9f2dc5ab4795926c397ca939d0b674bb83b4f435906041ea70cedb8e6e2f5d29
MD5 648c94bc4a28e05f93f62dcd810282ae
BLAKE2b-256 05de28f7198f6902e3708228ec4b12655a5789f47976d05aa7f4d3699d761876

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page