Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

aPRAW

PyPi version PyPi License PyPi Python Versions aPRAW Discord GitHub Issues GitHub Stars GitHub Contributors Subreddit Subscribers

Asynchronous Python Reddit API Wrapper by Dan6erbond.

aPRAW is an asynchronous API wrapper written for the Reddit API that builds on the idea of PRAW in many ways. It follows a very similar design, but adds features such as unlimited listings and, most importantly, support for asynchronous requests. This allows the library to be used in scenarios where the requests can take longer (such as with those unlimited listings and streams) and not block other tasks.

Table of Contents

Key Features

  • Asynchronous HTTPS requests to the Reddit API.
  • Unlimited listings.
  • Full OOP class design.

Installation

aPRAW requires a release of Python 3.6 or newer as it uses the inbuilt async and await syntax. You can install aPRAW via pip:

pip install apraw

Quickstart

Create an application on your Reddit account as per their documentation. Once you have that, you can interact with aPRAW and its subclasses:

import apraw
import asyncio


# instantiate a `Reddit` instance
# you can also supply a key to an entry within a praw.ini
# file, making your login compatible with praw as well
reddit = apraw.Reddit(client_id="CLIENT_ID", client_secret="CLIENT_SECRET",
                    password="PASSWORD", user_agent="USERAGENT",
                    username="USERNAME")

async def scan_posts():
  # get an instance of a subreddit
  subreddit = await reddit.subreddit("aprawtest")

  # loop through new posts
  async for submission in subreddit.new():
    print(submission.title)

if __name__ == "__main__":
    # get the asyncio event loop
    loop = asyncio.get_event_loop()

    # add scan_posts() to the queue and run it
    loop.run_until_complete(scan_posts())

Due to the fact that aPRAW's code is almost entirely asynchronous, you will have to perform all network-related tasks within the asyncio event loop.

Community and Support

If you have any questions regarding aPRAW and its usage...

  • Join the /r/aPRAW subreddit
    • Feel free to post a question in the questions thread or make your own post if it could start a big discussion!
  • Join the aPRAW Discord server
    • Use the #💬general chat for discussion about the library and talking to other users.
    • Use the #❓questions to post questions. The developers will try to get back to you as quickly as possible, but other users can help as well!
    • Use the #💡ideas if you have any ideas for the framework but don't know how to implement them, or just want to throw in the suggestion.

Contributing

Of course, aPRAW is open-source under the GPLv3 license and all additions and bug reports in the form of issues and pull requests are welcome! For further information, view the contribution guidelines and have fun coding!

Documentation

The full API documentation can be found on Read The Docs.

Roadmap

  • Full coverage of Reddit's API.
  • PyPi release.
  • Never-ending streams.
  • Useful helper functions.

License

aPRAW's source is provided under GPLv3.

Copyright ©, RaviAnand Mohabir

Note by the Developers

aPRAW's development process and code is in no way affiliated with that of PRAW. The design allows for a simple adoption when moving from PRAW to aPRAW, but the developers have set out to create a wrapper from the ground-up, without the use of a pre-existing codebase.

Metadata

Release files for aPRAW 0.6.9a0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for aPRAW 0.6.9a0
File Size Uploaded
aPRAW-0.6.9a0.tar.gz 52.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for aPRAW 0.6.9a0
File Interpreter ABI Platform
aPRAW-0.6.9a0-py3-none-any.whl Python 3 none any Details

Total release size: 124.3 kB

Release files / aPRAW-0.6.9a0.tar.gz

Download URL aPRAW-0.6.9a0.tar.gz
Size 52.3 kB
Tags Source
SHA-256 checksum
How to use checksums
243ba3b9762519917a00c3bbb3126f04054aeac8680dd924e10361ec0960f14f
BLAKE2b-256 checksum
How to use checksums
1963d6116d590536e58ce84fdff2211c0b6f0bd59329c7cf09f23b73c0110918
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6

Release files / aPRAW-0.6.9a0-py3-none-any.whl

Download URL aPRAW-0.6.9a0-py3-none-any.whl
Size 72.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1a9595c8d4eda25e0f07b9ad987be85e014b80565da1d7f7938ed00190262776
BLAKE2b-256 checksum
How to use checksums
f600da4326096b9e43033f8af09a3b484af2f9f823d48566367a7668899f316b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/3.4.2 importlib_metadata/4.8.1 pkginfo/1.7.1 requests/2.26.0 requests-toolbelt/0.9.1 tqdm/4.62.2 CPython/3.9.6
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page