safin.singh
@safin.singh

Mentions

uanirudhx
@uanirudhx0
Hello, hello hack clubbers. Along with my return to the slack i have a dope ship for you! 🚢 Introducing lr, a simple and fast link shortener. It builds on the ideas of many smart people (thanks @safin.singh @caleb :) and has an extremely small source footprint, clocking in at 770sloc. lr requires pthreads, sockets, a POSIX-1.2008 conforming libc and a C99 compiler. That's about it. It serves your links really fast[1]. To get started just clone the repository and run make run Anyways if you like it give it a star ⭐thanks:) [1] No benchmarks go run your own lol
https://cloud-dcrmgmmml-hack-club-bot.vercel.app/0image.png
matt
@matt0
https://cloud-7gby11dce.vercel.app/0image.png
wom emoji
typescript emoji
upvote emoji
rishi
@rishi0
✨ Yellow hello hack club! I’m *VERY* excited to be shipping what is almost certainly my biggest project to date (also the fastest implemented: I wrote pretty much the whole thing throughout the day yesterday): Idyllic, the fastest way to build REST APIs! :githubparrot: Github (⭐ s always appreciated) z.rishi.cx/g/idyllic & z.rishi.cx/g/idyllic-todo (for an example of what a real-world API might look like) 🚀 At its core, Idyllic is a programming language that allows you to define how data flows through a given API & its routes:
define middleware { test, logger } from "./api"
define guards { authed } from "./api"
define handlers { getAllTodos, postTodos } from "./api"

global
  | middleware logger

fragment getTodosFragment(level)
  | guard authed(level)
  | middleware test

route "/todos" {
  | middleware test

  get {
     | expand getTodosFragment("user")
     getAll
  }
  
  post {
     | expand getTodosFragment("admin")
     postTodos
  }
}
🛠️ The Idyllic language reverses the conventional paradigm that surrounds Node REST APIs: usually, you have to write your functions _for a framework_. With Idyllic, you can assemble your API completely independently of your functions themselves—now, an API is simply a wrapper over regular old Typescript functions! The language itself comes with a pretty big suite of features (you can read more about them at the Github page):
• Static typing with Typescript & definition types
• Parameterized, first-class macro support with Fragments
• Data pipelines with Sequences
• First-class support for Middleware and Guards
• Query parameter capturing
• Request type definitions
🕸️ The repository also comes with a minimal HTTP server that takes in a compiled Idyll and starts up a fully-functioning API from it:
import { IdyllicCompiler } from "@idyllic/compiler";
import { IdyllicServer } from "@idyllic/server";

(async () => {
    
    // The fromFile static method reads the file into a string for us
    const compiler = await IdyllicCompiler.fromFile("ast.idl")

    // The compile method executes all 5 stages of compilation automatically.
    const compiled = await compiler.compile()
    
    // The server constructor takes in a compiled Idyllic object.
    const server = new IdyllicServer(compiled)
    
    // The start function takes in a port number (defaults to 3000) and a function to be executed on start.
    server.start(3000, () => {
        console.log("Idyllic server has started!")
    })

})()
💨 This server implementation’s pretty fast, too: in most cases, it comes close to (and in some cases, beats) Express! It’s derived directly from node’s built-in http module. Idyllic’s been a project that I’ve dreamt of making for quite a while now, and I’m super happy with how it turned out! I’ve included a little walkthrough of an Idyllic project down below :) I can’t wait to see what you’ll build with it! Special thanks to @JackyZhao @matthewgleich @safin.singh for being awesome along the way ✨
aadit
@aadit0
https://cloud-ogqwj67k6.vercel.app/0final3.png
rishi
@rishi0
https://cloud-mkwtiwijq.vercel.app/0screen_shot_2020-08-16_at_1.41.36_pm.png
summer-of-making emoji
rishi
@rishi0
Making some more pages for Rapid with the amazing @safin.singh!
https://cloud-bl3pb03sc.vercel.app/0image_from_ios.jpg