Popularity
4.9
Declining
Activity
5.4
-
3
5
2
Monthly Downloads: 14
Programming language: Haskell
License: Apache License 2.0
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.
-
bit-stream
Lazy infinite compact streams with cache-friendly O(1) indexing and applications for memoization -
dependent-sum-template
DISCONTINUED. 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
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