perry VS oauth

Compare perry vs oauth and see what are their differences.

perry

A native TypeScript compiler written in Rust. Compiles TypeScript directly to executables using SWC and LLVM. (by PerryTS)
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
perry oauth
12 57
3,610 -
38.2% -
9.9 -
7 days ago -
Rust
MIT License -
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

perry

Posts with mentions or reviews of perry. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2026-05-29.

oauth

Posts with mentions or reviews of oauth. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2026-05-29.
  • Perry Compiles TypeScript directly to executables using SWC and LLVM
    10 projects | news.ycombinator.com | 29 May 2026
    'curl -s -X POST "https://github.com/login/oauth/access_token" -H "Accept: application/json" -d "client_id=' + GITHUB_CLIENT_ID + '&client_secret=' + GITHUB_CLIENT_SECRET + '&code=' + code + '"'
  • Show HN: Sifter – Does your CV stand out to LLMs?
    1 project | news.ycombinator.com | 26 May 2026
    Sounds intriguing but is GitHub login broken? It leads me to a 404 at

    https://github.com/login/oauth/authorize?client_id=[redacted...

  • Building LoopSignal Part 3: Closing the Loop with GitHub Issues and Status Notifications
    1 project | dev.to | 8 May 2026
    const state = Buffer.from( JSON.stringify({ projectId, userId: user.id }) ).toString("base64url"); const githubAuthUrl = new URL("https://github.com/login/oauth/authorize"); githubAuthUrl.searchParams.set("client_id", clientId); githubAuthUrl.searchParams.set("redirect_uri", redirectUri); githubAuthUrl.searchParams.set("scope", "repo"); githubAuthUrl.searchParams.set("state", state);
  • OAuth 2.0 Flows Demystified: Authorization Code, PKCE, and Client Credentials
    1 project | dev.to | 7 Apr 2026
    // Step 1: Redirect user to provider app.get('/auth/github', (req, res) => { const state = generateRandomString(16); // CSRF protection req.session.oauthState = state; const params = new URLSearchParams({ client_id: process.env.GITHUB_CLIENT_ID!, redirect_uri: `${process.env.APP_URL}/auth/github/callback`, scope: 'read:user user:email', state, }); res.redirect(`https://github.com/login/oauth/authorize?${params}`); }); // Step 2: Handle callback with code app.get('/auth/github/callback', async (req, res) => { const { code, state } = req.query; // Verify state to prevent CSRF if (state !== req.session.oauthState) { return res.status(400).send('Invalid state'); } // Exchange code for token (server-to-server) const tokenResponse = await fetch('https://github.com/login/oauth/access_token', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify({ client_id: process.env.GITHUB_CLIENT_ID, client_secret: process.env.GITHUB_CLIENT_SECRET, // never exposed to browser code, }), }).then(r => r.json()); const { access_token } = tokenResponse; // Fetch user info const user = await fetch('https://api.github.com/user', { headers: { Authorization: `Bearer ${access_token}` }, }).then(r => r.json()); // Create or find user in your DB const dbUser = await upsertUser({ githubId: user.id, email: user.email, name: user.name }); // Create your own session req.session.userId = dbUser.id; res.redirect('/dashboard'); });
  • Your Pull Requests Are Being Ignored. Fix It with This Simple Bot
    1 project | dev.to | 23 Mar 2026
    Name: GITHUB_PR_BOT Client ID: your GitHub App client ID Client Secret: your GitHub App client secret Scope: leave empty Authorization URL: https://github.com/login/oauth/authorize Token URL: https://github.com/login/oauth/access_token
  • OAuth Explained Like You're 5
    1 project | dev.to | 13 Feb 2026
    const express = require('express'); const axios = require('axios'); const app = express(); // Step 1: Redirect user to GitHub app.get('/login', (req, res) => { const githubAuthUrl = `https://github.com/login/oauth/authorize?client_id=${process.env.GITHUB_CLIENT_ID}&scope=read:user`; res.redirect(githubAuthUrl); }); // Step 3: Handle the callback app.get('/callback', async (req, res) => { const { code } = req.query; // Step 4: Exchange code for token const tokenResponse = await axios.post( 'https://github.com/login/oauth/access_token', { client_id: process.env.GITHUB_CLIENT_ID, client_secret: process.env.GITHUB_CLIENT_SECRET, code, }, { headers: { Accept: 'application/json' } } ); const accessToken = tokenResponse.data.access_token; // Step 5: Use the token const userResponse = await axios.get('https://api.github.com/user', { headers: { Authorization: `Bearer ${accessToken}` }, }); res.json(userResponse.data); }); app.listen(3000);
  • Designing an Authentication System: OAuth and SSO
    1 project | dev.to | 4 Feb 2026
    class SocialAuthProvider { constructor(config) { this.providers = { google: { authUrl: 'https://accounts.google.com/o/oauth2/v2/auth', tokenUrl: 'https://oauth2.googleapis.com/token', userInfoUrl: 'https://www.googleapis.com/oauth2/v2/userinfo', scope: 'openid email profile' }, github: { authUrl: 'https://github.com/login/oauth/authorize', tokenUrl: 'https://github.com/login/oauth/access_token', userInfoUrl: 'https://api.github.com/user', scope: 'user:email' } }; } async authenticateUser(provider, code) { const config = this.providers[provider]; if (!config) throw new Error(`Provider ${provider} not supported`); // Exchange code for token const tokenResponse = await fetch(config.tokenUrl, { method: 'POST', headers: { 'Accept': 'application/json' }, body: new URLSearchParams({ client_id: process.env[`${provider.toUpperCase()}_CLIENT_ID`], client_secret: process.env[`${provider.toUpperCase()}_CLIENT_SECRET`], code: code, grant_type: 'authorization_code' }) }); const tokens = await tokenResponse.json(); // Get user info const userResponse = await fetch(config.userInfoUrl, { headers: { 'Authorization': `Bearer ${tokens.access_token}` } }); return await userResponse.json(); } }
  • Supply Chain Security: A Deep Dive into SBOM and Code Signing
    2 projects | dev.to | 11 Jan 2026
    # (Replace `` with the email you used to log in) cosign verify \ --certificate-identity="" \ --certificate-oidc-issuer="https://github.com/login/oauth" \ $IMAGE_NAME # Verification for ttl.sh/09dc8b35-cabd-4bd8-885f-.../my-signed-image:1h -- # The following checks were performed on each of these signatures: # - The cosign claims were validated # - Existence of the claims in the transparency log was verified offline # - The code-signing certificate was verified using trusted certificate authority certificates # [{"critical":{"identity":{"docker-reference":"ttl.sh/09dc8b35-cabd-4bd8-885f-.../my-signed-image:1h"},"image":{"docker-manifest-digest":"sha256:410dabcd6f1d53f1f4e5c1ce9553efa298ca6bcdd086dfc976b8f659d58b46d2"},"type":"https://sigstore.dev/cosign/sign/v1"},"optional":{}}]
  • Show HN: Fanfa – Interactive and animated Mermaid diagrams
    2 projects | news.ycombinator.com | 8 Dec 2025
    it says 404:

    https://github.com/login/oauth/authorize?access_type=offline...

  • SvelteKit SurrealDB Login with GitHub
    4 projects | dev.to | 30 Nov 2025

What are some alternatives?

When comparing perry and oauth you can also consider the following projects:

rustc_codegen_cranelift - Cranelift based backend for rustc

react-coding-challenges - A series of ReactJS coding challenges with a variety of difficulties.

lumina - Lumina is an eager-by-default natively compiled functional programming language with the core goals of readibility, practicality, compiler-driven development and simplicity.

node-oauth2-server - Complete, compliant and well tested module for implementing an OAuth2 Server/Provider with express in node.js

wasmtime - A lightweight WebAssembly runtime that is fast, secure, and standards-compliant

react-github-login - :octocat: A React Component for GitHub Login

SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured

Did you know that Rust is
the 3rd most popular programming language
based on number of references?