30 open-source projects similar to praw-dev/praw, ranked by how many features they have in common. Compare stars, activity and what each one does to find the best Praw alternative.
This is a Go library for obtaining, refreshing, and attaching OAuth 2.0 access tokens to HTTP requests. It provides a generic token source interface with interchangeable implementations for different OAuth 2.0 grant types, and wraps the Go net/http transport layer to automatically attach access tokens as Authorization headers on outgoing requests. The library supports the authorization code flow, generating consent page URLs and exchanging authorization codes for tokens. It also implements the device authorization grant for authentication on devices without a browser, and the resource owner p
This project is a Ruby wrapper for the Twitter API, providing a programmatic interface to interact with the platform's REST and streaming endpoints. It serves as an API client for managing social content, users, and account activity. The library includes specialized tools for real-time data streaming, allowing the acquisition of live public posts, account events, and user activity. It differentiates itself with advanced media handling, such as chunked uploading for large files, and integrated traffic management to monitor rate limits and detect streaming stalls. Broadly, the project covers c
JDA is a Java wrapper for the Discord API, providing a framework for building automated agents and integrating applications with the chat platform. It functions as both a REST API client for managing server entities and a gateway client that maintains persistent WebSocket connections for real-time state updates. The library features a comprehensive voice API module for managing audio streaming, voice channel connectivity, and soundboard integration. It also includes a specialized toolkit for interactive UI design, enabling the creation of slash commands, buttons, select menus, and modal input
Twikit is a Python library and API wrapper designed for interacting with X (Twitter). It simulates browser requests and mimics private network traffic to enable programmatic access to the platform without requiring an official API key. The project focuses on social media automation and data extraction, featuring tools for scraping user profiles, trending topics, and chronological tweet histories. It includes a session manager that handles user authentication, two-factor authentication, and cookie persistence to maintain active account access. The library's capabilities cover a broad range of
Authlib is a comprehensive Python framework for implementing OAuth 1.0, OAuth 2.0, and OpenID Connect clients and servers. It provides a complete toolkit for identity management, spanning the development of authorization servers, resource servers, and client-side integrations. The library distinguishes itself through a full implementation of the JOSE specifications, including JSON Web Tokens, Encryption, Signatures, and Keys. It features specialized capabilities for non-interactive authentication via service account assertion frameworks and a compliance-correction layer designed to handle ide
Spotipy is a Python client library for interacting with the Spotify Web API. It provides a programmatic interface to manage music data, user accounts, and media playback. The library implements a full OAuth 2.0 client capable of handling authorization codes, client credentials, and implicit grants. It includes a token manager that supports automated token refreshing and pluggable caching backends to maintain stateful sessions. The project covers music metadata retrieval and search, allowing for the lookup of artists, albums, and tracks via resource identifiers and URIs. It also provides capa
JDA is a Java library that serves as a Discord API wrapper, bot framework, and voice API client. It enables applications to interact with the Discord REST API and real-time gateway to build automated assistants, manage servers, and handle user interactions. The project includes a sharding manager to distribute gateway connections across multiple shards for scaling high-volume deployments. It also provides a UI component library for constructing interactive buttons, select menus, and modal forms within messages. Its capabilities cover voice and audio management, including audio streaming and
This project is a REST API client library and Google Cloud SDK component that integrates Python applications with Google services. It functions as a discovery-based API client, utilizing an OAuth 2.0 integration library to secure requests and verify identity through access tokens and service accounts. The library is distinguished by its use of discovery documents to dynamically generate clients at runtime. By parsing JSON metadata, it maps Python method calls to HTTP requests and builds interface-based resource models that mirror the hierarchical structure of the remote service. Its broader
This project is an OAuth security framework for Java web applications. It provides a set of tools for adding authentication and authorization to Spring applications using standardized delegated authorization protocols. The library implements both OAuth 1.0a and OAuth 2.0 standards. For OAuth 2.0, it includes implementations for both the client side, to request access tokens and consume protected resources, and the provider side, to issue access tokens and manage authorization grants. The framework covers API authorization workflows, securing communication between applications, and managing d
InvenTree is an open-source inventory management platform built on Django, designed for tracking parts, stock levels, and supply chain operations through a web interface and REST API. The system uses barcodes—including QR codes, 1D barcodes, and Data Matrix codes—as primary identifiers for scanning, linking, and triggering inventory actions, and extends core functionality through a Python plugin framework supporting custom actions, UI panels, barcode handlers, and scheduled tasks. The platform distinguishes itself through a comprehensive plugin-based extensibility system that allows custom in
Authlib is a comprehensive Python library for building and integrating OAuth 1.0, OAuth 2.0, and OpenID Connect clients and servers. It provides a unified set of tools to manage authentication and authorization flows, allowing applications to either act as a client connecting to external identity providers or as a provider issuing tokens and managing user identities. The project distinguishes itself through a full implementation of the JOSE standards, offering a suite of cryptographic tools for generating, signing, encrypting, and validating JSON Web Tokens, Signatures, Encryption, and Keys.
clasp is a command-line interface for managing Google Apps Script projects, enabling developers to create, sync, and deploy scripts from a local development environment. It provides an alternative to the cloud-based script editor, allowing version control, offline editing, and integration with standard development workflows. The tool supports TypeScript transpilation, so developers can write type-annotated code that compiles to JavaScript for the Apps Script runtime. Authentication is handled via OAuth 2.0, and users can synchronize local files with remote projects using ignore patterns simil
Lobsters is a link aggregator platform and social news engine designed as a technical community forum. It serves as a threaded discussion board where users share external web links and engage in nested conversations and debates. The platform maintains a curated environment through an invitation-only membership model, restricting account creation to users with valid referral codes. It employs a vote-weighted ranking system and user reputation management to highlight high-quality technical content and trusted contributors. The system includes comprehensive community management tools, including
Thunder Client is a REST API client extension for VS Code that functions as an HTTP request manager, testing tool, and mocking workspace. It allows users to send requests, organize them into collections, and manage API configurations directly within the editor. The project distinguishes itself through a command-line interface for executing automated test suites in CI/CD pipelines and a Git-based synchronization system for sharing request collections and environment configurations across teams. It also incorporates artificial intelligence to automate the conversion of API scripts during migrat
PyGithub is a Python library that serves as an object-oriented wrapper for the GitHub REST API. It functions as a specialized client that translates API endpoints into a hierarchy of Python classes, allowing for the programmatic management of GitHub repositories, user profiles, and organizations. The library manages the serialization of requests and responses, converting JSON data into structured object attributes. It utilizes lazy-loading for property retrieval and employs generators to handle pagination when iterating over large remote datasets. This toolkit enables the automation of GitHu
This project is an unofficial TikTok API client and Python library. It functions as a data scraper and API wrapper for programmatically retrieving public profile information and trending media from the TikTok platform. The library enables the extraction of user identity details and the retrieval of trending video content. It provides tools for social media automation, trend analysis, and content research.
This project is a collection of Go packages and a programmatic interface for interacting with Google services and Google Cloud resources via REST APIs. It functions as a client library and SDK that transforms raw HTTP requests into structured Go function calls. The library utilizes discovery-based client generation to create type-safe clients from API discovery documents. It separates the acquisition of authorization tokens from the request logic through a token-source based authentication model. The project covers identity management and authentication via OAuth 2.0, service accounts, and A
This project is a JavaScript client library and SDK for interacting with the Notion REST API. It provides typed methods and utilities to programmatically manage pages, databases, and workspace resources within a Notion environment. The SDK includes tools for implementing OAuth 2.0 authorization flows to grant third-party application access to workspace content. It features mechanisms for handling cursor-based pagination via asynchronous iterators and implements exponential back-off retries to manage rate limits and transient server errors. The library covers a broad range of capabilities, in
Octokit is a JavaScript API client and REST API wrapper designed for executing authenticated requests to GitHub from browser-based environments. It serves as a programmatic interface for managing repositories, issues, pull requests, and user profiles. The library provides a high-level wrapper that organizes API functionality into resource-specific namespaces. It implements an asynchronous promise interface and includes mechanisms for pagination-aware data fetching and rate-limit tracking to prevent service interruptions. The tool covers a broad range of administrative capabilities, including
Curlie is a terminal-based HTTP client and debugging tool used for executing network requests and interacting with REST APIs. It provides a command line interface for sending requests using simplified syntax, with a specific focus on interacting with JSON services. The tool distinguishes itself by converting simplified interactive requests into standard curl commands for external reproduction and sharing. It also features unbuffered data streaming to monitor server responses in real time as they arrive. The project covers a broad range of API testing capabilities, including request prototypi
This project is a PHP implementation for automating messages, managing custom menus, and handling media uploads for the WeChat ecosystem. It serves as a social media API wrapper, an OAuth 2.0 client library, and a toolkit for enterprise messaging and payment integration. The library distinguishes itself by providing dedicated workflows for official account integration and enterprise management, including the coordination of corporate organizational structures and employee directories. It also includes specialized tools for marketing automation, such as the issuance of digital coupons and the
hello.js is a JavaScript REST API client and social media API wrapper designed for authenticating users and aggregating data across multiple social network providers. It provides a unified interface to standardize requests and response formats, allowing for consistent data retrieval from diverse external services. The project implements a secure OAuth2 handshake process that utilizes a proxy-based credential masking system to hide private API keys from the client side. It includes a token manager that handles the full authentication lifecycle, including scope-based permission mapping and an a
This is a Go client library for interacting with the Slack API, providing a programmatic interface to manage channels, users, and workspace settings. It functions as a bot framework and event handler, allowing for the development of automated assistants that respond to workspace activities. The library includes a dedicated Block Kit builder for constructing complex UI layouts, such as interactive elements, data tables, and visualizations, for rich messaging. It also provides a full implementation for managing user authentication and identity verification through OAuth2 and OpenID Connect. Br
GAM is a command-line tool for administering Google Workspace and Cloud Identity. It translates command-line arguments into structured API calls, enabling administrators to manage users, groups, organizational units, and domain settings across a Google Workspace environment. The tool handles authentication through OAuth2 flows, service accounts, and workload identity federation, and supports multi-tenant configurations for managing multiple domains or cloud projects from a single installation. GAM distinguishes itself through its batch processing and automation capabilities. It can process la
Binance Connector Python is a client library that provides programmatic access to the Binance cryptocurrency exchange, enabling automated trading and asset management across spot, margin, futures, and options markets. The library wraps the exchange's REST and WebSocket APIs into a Python interface with type-hinted methods, HMAC and RSA authentication, and a unified request-response pipeline for consistent error handling and rate limiting. The connector supports a broad range of exchange operations beyond core trading, including sub-account management, wallet operations, and algorithmic order
Octokit.js is a GitHub API SDK used to interact with GitHub via REST and GraphQL interfaces. It serves as a client for executing typed queries and mutations, managing authenticated REST requests, and handling signed webhooks across Node.js, Deno, and browser environments. The library features a plugin-based request pipeline and an adapter-based HTTP client, allowing the interception of requests and responses across different runtimes. It employs strategy-based authentication to separate credential management from request logic, supporting static tokens, OAuth flows, and GitHub App installatio
mcp-atlassian is a tool that connects Atlassian project data to AI assistants using the Model Context Protocol. It provides a standardized tool-calling interface that enables AI assistants to interact directly with project data and documentation. The project supports multi-tenant environments and diverse hosting scenarios, including cloud and on-premise deployments. It implements multiple authentication methods such as OAuth 2.0, API tokens, and personal access tokens, and can route traffic through configurable HTTP, HTTPS, or SOCKS proxies to meet corporate security requirements. Its capabi
RedditOS is a native macOS social media application and Reddit API wrapper. It serves as a desktop client for browsing and interacting with Reddit community discussions and social feeds. The project is implemented as a SwiftUI Reddit client, utilizing a declarative framework to render social media content specifically for the macOS operating system. The application provides capabilities for Reddit content consumption, social media thread management, and general desktop browsing of community discussions.
Corcel transforms a remote WordPress site into a local data source by wrapping its REST API in an object-relational mapper. As a headless CMS bridge, it synchronizes remote posts, pages, users, and options into local models, enabling offline querying and manipulation from external PHP applications. The library uses pluggable adapters to fetch different WordPress resource types and a schema-based translation layer that converts WordPress post types and fields into local definitions. It validates user credentials against a remote WordPress database and integrates with the host framework’s authe