GithubHelp home page GithubHelp logo

marcospividori / push-notify Goto Github PK

View Code? Open in Web Editor NEW
26.0 5.0 15.0 25.51 MB

A server-side library in Haskell for sending push notifications to devices running different OS.

License: MIT License

Haskell 59.29% JavaScript 4.75% Java 28.07% C# 7.88%

push-notify's Introduction

Libraries for communicating through Push Notifications:

3 libraries to make it easy to send push notifications to mobile devices. They are available on Hackage:

  • push-notify : This library offers a simple API for sending notifications through APNS, GCM and MPNS. 1

  • push-notify-ccs : This library offers an API for sending/receiving notifications through CCS (XMPP - Google Cloud Messaging). 2

  • push-notify-general : This library offers a general API for sending/receiving notifications, and handling the registration of devices on the server. It provides a general abstraction which can be used to communicate through different services as APNS, GCM, MPNS, hiding as much as possible, the differences between them. 3

More documentation and test examples on the blog 5. Also, look at Haddock documentation.

push-notify's People

Contributors

marcospividori avatar mxswd avatar snoyberg avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

push-notify's Issues

push-notify fails to build: `clientCertificates' is not a (visible) constructor field name

Configuring push-notify-0.1.0.0...
Building push-notify-0.1.0.0...
Preprocessing library push-notify-0.1.0.0...
[ 1 of 12] Compiling Network.PushNotify.Mpns.Constants ( Network/PushNotify/Mpns/Constants.hs, dist/dist-sandbox-b0b8892f/build/Network/PushNotify/Mpns/Constants.o )
[ 2 of 12] Compiling Network.PushNotify.Apns.Constants ( Network/PushNotify/Apns/Constants.hs, dist/dist-sandbox-b0b8892f/build/Network/PushNotify/Apns/Constants.o )
[ 3 of 12] Compiling Network.PushNotify.Mpns.Types ( Network/PushNotify/Mpns/Types.hs, dist/dist-sandbox-b0b8892f/build/Network/PushNotify/Mpns/Types.o )
[ 4 of 12] Compiling Network.PushNotify.Mpns.Send ( Network/PushNotify/Mpns/Send.hs, dist/dist-sandbox-b0b8892f/build/Network/PushNotify/Mpns/Send.o )

Network/PushNotify/Mpns/Send.hs:58:46:
`clientCertificates' is not a (visible) constructor field name
Failed to install push-notify-0.1.0.0
cabal: Error: some packages failed to install:
push-notify-0.1.0.0 failed during the building phase. The exception was:
ExitFailure 1

Split into 3 repos

It would be very useful if the 3 packages were in different repositories.

That way, cloning the repository would be much smaller.

Thanks!

tls 1.2 support

Hello, I noticed that push-notify has been implemented using tls 1.1 and I have a project that depends on tls 1.2 which makes my program and push-notify incompatible with each other.

I would love if this library supported tls 1.2.
I checked if it would be easy to convert existing code from tls 1.1 to 1.2 and unfortunately it seems like it will be a bit of work since a lot of data types have changed.

tls 1.1:
https://hackage.haskell.org/package/tls-1.1.5/docs/Network-TLS.html

tls 1.2:
https://hackage.haskell.org/package/tls-1.2.7/docs/Network-TLS.html

Upload latest version to Hackage

When I tried cabal install push-notify, I got the following error:

$ cabal install push-notify
Resolving dependencies...
Configuring push-notify-0.1.0.1...
Building push-notify-0.1.0.1...
Failed to install push-notify-0.1.0.1
Last 10 lines of the build log ( /Users/a_/.cabal/logs/push-notify-0.1.0.1.log ):
Building push-notify-0.1.0.1...
Preprocessing library push-notify-0.1.0.1...

Network/PushNotify/Gcm/Send.hs:15:8:
Could not find module ‘Data.Conduit.Attoparsec’
It is a member of the hidden package ‘conduit-extra-1.1.9’.
Perhaps you need to add ‘conduit-extra’ to the build-depends in your .cabal file.
Use -v to see a list of the files searched for.
cabal: Error: some packages failed to install:
push-notify-0.1.0.1 failed during the building phase. The exception was:
ExitFailure 1

I see in the repository that the conduit-extra dependency is already listed in the cabal file.

Is this library maintained?

@MarcosPividori I'd like to use this library for a project I'm working on, however it seems it needs to be dusted off a bit (it's using the deprecated certificate package, for example, and won't build from Hackage as a result). I see some changes in August, but the last Hackage release is coming up on 4 years old now.

I'm willing to put in the work to dust it off, but basically I'm wondering which is the best course of action to take here:

  • If I send PRs with changes, would you merge them and push a new release to Hackage?
  • Failing the above, would you be willing to add me as a collaborator on the repo and give me upload privs on Hackage?
  • Faililng the above (or if I don't hear back in a few days), I'll just maintain a fork and upload to Hackage with a new name (and of course leaving your credit in place).

Do you have any preference?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.