{"id":21526326,"url":"https://github.com/linxgnu/gosmpp","last_synced_at":"2025-04-12T16:39:52.953Z","repository":{"id":38228686,"uuid":"65435472","full_name":"linxGnu/gosmpp","owner":"linxGnu","description":"Smpp (3.4) Client Library for Go","archived":false,"fork":false,"pushed_at":"2025-03-10T07:40:57.000Z","size":3839,"stargazers_count":168,"open_issues_count":7,"forks_count":65,"subscribers_count":12,"default_branch":"master","last_synced_at":"2025-04-03T18:13:15.824Z","etag":null,"topics":["client-library","go","golang","smpp","smpp-client"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/linxGnu.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-08-11T03:28:53.000Z","updated_at":"2025-04-03T10:57:36.000Z","dependencies_parsed_at":"2024-01-04T14:26:30.964Z","dependency_job_id":"70603ad4-216a-41c2-b154-b9e8238c6bec","html_url":"https://github.com/linxGnu/gosmpp","commit_stats":null,"previous_names":[],"tags_count":46,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linxGnu%2Fgosmpp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linxGnu%2Fgosmpp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linxGnu%2Fgosmpp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/linxGnu%2Fgosmpp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/linxGnu","download_url":"https://codeload.github.com/linxGnu/gosmpp/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248598279,"owners_count":21131064,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["client-library","go","golang","smpp","smpp-client"],"created_at":"2024-11-24T01:44:37.487Z","updated_at":"2025-04-12T16:39:52.927Z","avatar_url":"https://github.com/linxGnu.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# gosmpp\n\n[![](https://github.com/linxGnu/gosmpp/workflows/Build/badge.svg)]()\n[![Go Report Card](https://goreportcard.com/badge/github.com/linxGnu/gosmpp)](https://goreportcard.com/report/github.com/linxGnu/gosmpp)\n[![Coverage Status](https://coveralls.io/repos/github/linxGnu/gosmpp/badge.svg?branch=master)](https://coveralls.io/github/linxGnu/gosmpp?branch=master)\n[![godoc](https://img.shields.io/badge/docs-GoDoc-green.svg)](https://godoc.org/github.com/linxGnu/gosmpp)\n\nSMPP (3.4) Client Library in pure Go.\n\nThis library is well tested with SMSC simulators:\n- [Melroselabs SMSC](https://melroselabs.com/services/smsc-simulator/#smsc-simulator-try)\n\n## Installation\n```\ngo get -u github.com/linxGnu/gosmpp\n```\n\n## Usage\n\n### Highlight\n\n- From `v0.1.4`, gosmpp is written in event-based style and fully-manage your smpp session, connection, error, rebinding, etc. You only need to implement some hooks:\n\n```go\n\t\ttrans, err := gosmpp.NewSession(\n\t\tgosmpp.TRXConnector(gosmpp.NonTLSDialer, auth),\n\t\tgosmpp.Settings{\n\t\t\tEnquireLink: 5 * time.Second,\n\n\t\t\tReadTimeout: 10 * time.Second,\n\n\t\t\tOnSubmitError: func(_ pdu.PDU, err error) {\n\t\t\t\tlog.Fatal(\"SubmitPDU error:\", err)\n\t\t\t},\n\n\t\t\tOnReceivingError: func(err error) {\n\t\t\t\tfmt.Println(\"Receiving PDU/Network error:\", err)\n\t\t\t},\n\n\t\t\tOnRebindingError: func(err error) {\n\t\t\t\tfmt.Println(\"Rebinding but error:\", err)\n\t\t\t},\n\n\t\t\tOnPDU: handlePDU(),\n\n\t\t\tOnClosed: func(state gosmpp.State) {\n\t\t\t\tfmt.Println(state)\n\t\t\t},\n\t\t}, 5*time.Second)\n\t\tif err != nil {\n\t\t  log.Println(err)\n\t\t}\n\t\tdefer func() {\n\t\t  _ = trans.Close()\n\t\t}()\n```\n\n### Version (0.1.4.RC+)\n\n- Full example could be found: [here](https://github.com/linxGnu/gosmpp/blob/master/example)\n  - In this example, you should run smsc first:\n    - Build and run SMSC Simulator:\n\t```bash\n\tg++ -std=c++11 example/smsc_simulator/smsc.cpp -o smsc\n\t./smsc \u0026\n\t```\n    - Run smpp client in the example: https://github.com/linxGnu/gosmpp/blob/master/example/main.go\n    ```bash\n\tgo run example/main.go\n\t```\n\n### Old version (0.1.3 and previous)\nFull example could be found: [gist](https://gist.github.com/linxGnu/b488997a0e62b3f6a7060ba2af6391ea)\n\n## Supported PDUs\n\n- [x] bind_transmitter\n- [x] bind_transmitter_resp\n- [x] bind_receiver\n- [x] bind_receiver_resp\n- [x] bind_transceiver\n- [x] bind_transceiver_resp\n- [x] outbind\n- [x] unbind\n- [x] unbind_resp\n- [x] submit_sm\n- [x] submit_sm_resp\n- [x] submit_sm_multi\n- [x] submit_sm_multi_resp\n- [x] data_sm\n- [x] data_sm_resp\n- [x] deliver_sm\n- [x] deliver_sm_resp\n- [x] query_sm\n- [x] query_sm_resp\n- [x] cancel_sm\n- [x] cancel_sm_resp\n- [x] replace_sm\n- [x] replace_sm_resp\n- [x] enquire_link\n- [x] enquire_link_resp\n- [x] alert_notification\n- [x] generic_nack\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinxgnu%2Fgosmpp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flinxgnu%2Fgosmpp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flinxgnu%2Fgosmpp/lists"}