All Projects → Dan6erbond → aPRAW

Dan6erbond / aPRAW

Licence: GPL-3.0 license
Asynchronous Python Reddit API Wrapper

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to aPRAW

Shreddit
Remove your comment history on Reddit as deleting an account does not do so.
Stars: ✭ 669 (+1265.31%)
Mutual labels:  oauth, reddit, reddit-api
Praw
PRAW, an acronym for "Python Reddit API Wrapper", is a python package that allows for simple access to Reddit's API.
Stars: ✭ 2,675 (+5359.18%)
Mutual labels:  oauth, reddit, reddit-api
Jraw
The Java Reddit API Wrapper
Stars: ✭ 320 (+553.06%)
Mutual labels:  oauth, reddit, reddit-api
Oauth
🔗 OAuth 2.0 implementation for various providers in one place.
Stars: ✭ 336 (+585.71%)
Mutual labels:  oauth, reddit
Updoot
A reddit client built for android
Stars: ✭ 51 (+4.08%)
Mutual labels:  oauth, reddit
Korio
Korio: Kotlin cORoutines I/O : Virtual File System + Async/Sync Streams + Async TCP Client/Server + WebSockets for Multiplatform Kotlin 1.3
Stars: ✭ 282 (+475.51%)
Mutual labels:  oauth, asynchronous
Netcore Postgres Oauth Boiler
A basic .NET Core website boilerplate using PostgreSQL for storage, Adminer for db management, Let's Encrypt for SSL certificates and NGINX for routing.
Stars: ✭ 57 (+16.33%)
Mutual labels:  oauth, reddit
Swiftlysalesforce
The swiftest way to build iOS apps that connect to Salesforce
Stars: ✭ 115 (+134.69%)
Mutual labels:  oauth, asynchronous
saveddit
Bulk Downloader for Reddit
Stars: ✭ 130 (+165.31%)
Mutual labels:  reddit, reddit-api
Reddift
Swift Reddit API Wrapper
Stars: ✭ 215 (+338.78%)
Mutual labels:  oauth, reddit
crypto-subreddits-cli
👽 Track Cryptocurrency Subreddits On The Command Line 👽
Stars: ✭ 24 (-51.02%)
Mutual labels:  reddit, reddit-api
Unim.press
A Reddit front-page reader in the style of The New York Times.
Stars: ✭ 199 (+306.12%)
Mutual labels:  reddit, reddit-api
Mvvm Reddit
A companion project for our blog post on better Android software development using MVVM with RxJava.
Stars: ✭ 106 (+116.33%)
Mutual labels:  reddit, reddit-api
reddit-image-fetcher
A JavaScript package for fetching reddit images, memes, wallpapers and more.
Stars: ✭ 40 (-18.37%)
Mutual labels:  reddit, reddit-api
Reddit Bot
🤖 Making a Reddit Bot using Python, Heroku and Heroku Postgres.
Stars: ✭ 99 (+102.04%)
Mutual labels:  reddit, reddit-api
Reddsaver
CLI tool to download saved and upvoted media from Reddit
Stars: ✭ 76 (+55.1%)
Mutual labels:  reddit, reddit-api
Snoo
A Reddit command line client written in Node.js, using modern ES-features
Stars: ✭ 39 (-20.41%)
Mutual labels:  reddit, reddit-api
Psraw
PowerShell Reddit API Wrapper
Stars: ✭ 42 (-14.29%)
Mutual labels:  reddit, reddit-api
Login With
Stateless login-with microservice for OAuth
Stars: ✭ 2,301 (+4595.92%)
Mutual labels:  oauth, reddit
node-express-reddit-clone
Build a Node, Express and MySQL-based clone of Reddit for DecodeMTL web development bootcamp
Stars: ✭ 28 (-42.86%)
Mutual labels:  reddit, reddit-api

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.

Links

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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].