Popularity
5.0
Declining
Activity
5.4
-
3
5
2
Monthly Downloads: 17
Programming language: Haskell
License: GNU General Public License v3.0 or later
Tags:
Unclassified
Latest version: v0.2.1
mixpanel-client alternatives and similar packages
Based on the "Unclassified" category.
Alternatively, view mixpanel-client alternatives based on common mentions on social networks and blogs.
-
gotta-go-fast
A command line utility for practicing typing and measuring your WPM and accuracy. -
heroku-persistent
Parse DATABASE_URL into configuration types for Persistent -
bit-stream
Lazy infinite compact streams with cache-friendly O(1) indexing and applications for memoization -
ascii-art-to-unicode
Small program to convert ASCII box art to Unicode box drawings. -
hackertyper
"Hack" like a programmer in movies and games! Inspired by hackertyper.net -
rollbar-cli
A group of libraries written in Haskell to communicate with Rollbar API. -
base-unicode-symbols
Unicode alternatives for common functions and operators -
aeson-serialize
Functions for serializing a type that is an instance of ToJSON -
dependent-sum-template
Template Haskell code to generate instances of classes in dependent-sum package -
argon2
Haskell bindings to libargon2 - the reference implementation of the Argon2 password-hashing function -
webkit-javascriptcore
webkit javascriptcore library FFI -
servant-streaming
Support for servant requests and responses via the 'streaming' library -
rerebase
Reexports from "base" with a bunch of other standard libraries -
containers-unicode-symbols
Unicode alternatives for common functions and operators -
semver-range
Implementation of semver and NPM-style semantic version ranges in Haskell -
reflex-dom-pandoc
Render Pandoc documents in reflex-dom -
postgresql-simple-sop
Generic functions for postgresql-simple -
hasql-dynamic-statements
Dynamic statements for Hasql -
bitcoind-regtest
A cilent for the bitcoind JSON-RPC interface -
ptr-poker
Pointer poking action construction and composition toolkit
InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
Promo
www.influxdata.com
* 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 mixpanel-client or a related project?
README
MixPanel client for Haskell
Implements major features of MixPanel HTTP API:
- [x] track
- [x] alias
- [x] engage
- [ ] import
- [ ] export
Getting started
import Data.Aeson ( (.=) )
import Data.Time.Clock ( getCurrentTime )
import GHC.Exts ( fromList )
import MixPanel ( Operation(Set), engage, track, alias
, AuthToken(..), mkEnv
-- reexports
, newManager, tlsManagerSettings)
main :: IO ()
main = do
-- setup
manager <- newManager tlsManagerSettings
let env = mkEnv (AuthToken "foobar") manager
-- track a simple event
Right () <- track env "Played Video" mempty
-- track an event with extra properties
Right () <- track env "Played Video Unique per user"
$ fromList [ "distinct_id" .= ("generated-id" :: String)
, "customProperty" .= True ]
-- alias the user
Right () <- alias env "generated-id" "[email protected]"
-- profile engagement
now <- getCurrentTime
Right () <- engage env "[email protected]"
$ Set (fromList [ "$created" .= now])
putStrLn "All good!"
Design questions
a) Why does it use Object/Array
intemediate values from Data.Aeson
?
TODO
- batch requests
- expose extra url query paramerers
- engage special properties more type safe?
- filter out null values in requests to mixpanel
- api support for tracking revenue