giphy-api alternatives and similar packages
Based on the "Web" category.
Alternatively, view giphy-api alternatives based on common mentions on social networks and blogs.
-
scotty
Haskell web framework inspired by Ruby's Sinatra, using WAI and Warp (Official Repository) -
yesod-persistent
A RESTful Haskell web framework built on WAI. -
swagger-petstore
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
servant
Main repository for the servant libraries — DSL for describing, serving, querying, mocking, documenting web applications and more! -
haskell-bitmex-rest
swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition. -
neuron
Future-proof note-taking and publishing based on Zettelkasten (superseded by Emanote: https://github.com/srid/emanote) -
haskell-kubernetes
Haskell bindings to the Kubernetes API (via swagger-codegen) -
apecs-gloss
a fast, extensible, type driven Haskell ECS framework for games -
airship
Helium + Webmachine = Airship. A toolkit for building declarative, RESTful web apps. -
digestive-functors
A general way to consume input using applicative functors -
servant-elm
Automatically derive Elm functions to query servant webservices -
tagsoup
Haskell library for parsing and extracting information from (possibly malformed) HTML/XML documents -
hbro
[Unmaintained] A minimal web-browser written and configured in Haskell. -
kubernetes-client-core
Haskell client for the kubernetes API. A work in progress. -
backprop
Heterogeneous automatic differentiation ("backpropagation") in Haskell -
keera-hails-reactive-htmldom
Keera Hails: Haskell on Rails - Reactive Programming Framework for Interactive Haskell applications -
engine-io
A Haskell server implementation of the Engine.IO and Socket.IO (1.0) protocols -
purescript-bridge
Create PureScript datatypes from Haskell datatypes
Access the most powerful time series database as a service
* Code Quality Rankings and insights are calculated and provided by Lumnify.
They vary from L1 to L5 with "L5" being the highest.
Do you think we are missing an alternative of giphy-api or a related project?
README
giphy-api
A Haskell wrapper for the Giphy HTTP API using servant-client.
Usage
The module provides a Giphy
monad which can be run with runGiphy
to lift it
into IO. Here's a simple usage example:
{-# LANGUAGE OverloadedStrings #-}
import qualified Data.Text as T
import qualified Web.Giphy as Giphy
apiKey :: Giphy.Key
apiKey = Giphy.Key "dc6zaTOxFJmzC"
sample :: IO ()
sample = do
let config = Giphy.GiphyConfig apiKey
resp <- Giphy.runGiphy (app "puppies") config
print resp
where
app :: T.Text -> Giphy.Giphy [Giphy.Gif]
app q = do
resp <- Giphy.search $ Giphy.Query q
return $ Giphy._searchItems resp
For a slightly more complex example, check out the [sample app](app/Main.hs), which also features the use of lenses.
Building
Use stack to build this library.
$ stack setup
$ stack test
# Drop the flag if you don't want the sample app to be built.
$ stack build --flag=giphy-api:buildSample
# To install the sample tool
$ stack install
Sample CLI Tool Usage
$ giphy-search --help
giphy-search
Usage: giphy-search ([-s|--search ARG] | [-t|--translate ARG] | [RANDOM_TAG])
Find GIFs on the command line.
Available options:
-h,--help Show this help text
-s,--search ARG Use search to find a matching GIF.
-t,--translate ARG Use translate to find a matching GIF.
-V,--version Show version information
$ giphy-search puppies
Just https://media2.giphy.com/media/PjQFtJnmdOlwI/giphy.gif
$ giphy-search --translate superman
Just https://media3.giphy.com/media/eOewytQL4tOOA/giphy.gif
$ giphy-search "1C4D539A-B787-497F-B1DC-8FCF8D2C026D"
Nothing
Missing features
There is no compiler flag at the moment to disable lenses if those aren't needed. The library, however, uses
microlens
so the overhead should be minimal.The "Stickers" API endpoints are currently not covered. If you need them, let me know. PRs obviously very welcome.
Some fields are currently not exposed. Again, if you need them, open an issue. For example, I have never seen a type value other than "gif" so I decided to skip it.