SOLFIND
Web Lens
Portal home

GitHub - praekeltfoundation/junebug: A system for managing text messaging transports with via RESTful HTTP interface. · GitHub

https://github.com/praekeltfoundation/junebug • 331 KB fetched
Open original page


GitHub - praekeltfoundation/junebug: A system for managing text messaging transports with via RESTful HTTP interface. · GitHub Skip to content Navigation Menu Sign in Appearance settings * Platform * AI CODE CREATION * GitHub Copilot Write better code with AI * GitHub Copilot app Direct agents from issue to merge * MCP Registry Integrate external tools * DEVELOPER WORKFLOWS * Actions Automate any workflow * Codespaces Instant dev environments * Issues Plan and track work * Code Review Manage code changes * Code Quality Enforce quality at merge * APPLICATION SECURITY * GitHub Advanced Security Find and fix vulnerabilities * Code security Secure your code as you build * Secret protection Stop leaks before they start * EXPLORE * Why GitHub * Documentation * Blog * Changelog * Marketplace View all features * Solutions * BY COMPANY SIZE * Enterprises * Small and medium teams * Startups * Nonprofits * BY USE CASE * App Modernization * DevSecOps * DevOps * CI/CD * View all use cases * BY INDUSTRY * Healthcare * Financial services * Manufacturing * Government * View all industries View all solutions * Resources * EXPLORE BY TOPIC * AI * Software Development * DevOps * Security * View all topics * EXPLORE BY TYPE * Customer stories * Events & webinars * Ebooks & reports * Business insights * GitHub Skills * SUPPORT & SERVICES * Documentation * Customer support * Community forum * Trust center * Partners View all resources * Open Source * COMMUNITY * GitHub Sponsors Fund open source developers * PROGRAMS * Security Lab * Maintainer Community * GitHub Stars * Archive Program * REPOSITORIES * Topics * Trending * Collections * Enterprise * ENTERPRISE SOLUTIONS * Enterprise platform AI-powered developer platform * AVAILABLE ADD-ONS * GitHub Advanced Security Enterprise-grade security features * Copilot for Business Enterprise-grade AI features * Premium Support Enterprise-grade 24/7 support * Pricing Search / Sign in Sign up Appearance settings You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert Uh oh! There was an error while loading. Please reload this page . praekeltfoundation / junebug Public * Notifications You must be signed in to change notification settings * Fork 23 * Star 120 * Code * Issues 22 * Pull requests 1 * Actions * Projects * Wiki * Security and quality 0 * Insights Additional navigation options * Code * Issues * Pull requests * Actions * Projects * Wiki * Security and quality * Insights develop Branches Tags Go to file Code Open more actions menu Latest commit   History 933 Commits 933 Commits Folders and files Name Name Last commit message Last commit date .github/ workflows .github/ workflows     docs docs     example-app example-app     junebug junebug     utils utils     .gitignore .gitignore     .travis.yml .travis.yml     CONTRIBUTING.rst CONTRIBUTING.rst     Dockerfile Dockerfile     LICENSE LICENSE     MANIFEST.in MANIFEST.in     README.rst README.rst     docker-compose.yml docker-compose.yml     requirements-dev.txt requirements-dev.txt     requirements-docs.txt requirements-docs.txt     requirements.txt requirements.txt     setup.py setup.py     View all files Repository files navigation * * README * Contributing * BSD-3-Clause license More items Junebug Junebug is an open-source server application providing SMS and USSD gateway connectivity for integrators, operators and application developers. Junebug enables integrators to automate the setup, monitoring, logging, and health checking of population scale messaging integrations. Junebug is a system for managing text messaging transports via a RESTful HTTP interface that supports: * Creating, introspecting, updating and deleting transports * Sending and receiving text messages * Receiving status updates on text messages sent * Monitoring transport health and performance * Retrieving recent transport logs for debugging transport issues. Design Principles Junebug aims to satisfy the following broad criteria: * Easy to install * Minimal useful feature set * Sane set of dependencies Documentation Documentation is available online at http://junebug.readthedocs.org/ and in the docs directory of the repository. To build the docs locally: $ virtualenv ve $ source ve/bin/activate (ve)$ pip install -e .-r requirements-docs.txt (ve)$ cd docs (ve)$ make html You'll find the docs in docs/_build/index.html You can contact the Junebug development team in the following ways: * via email by joining the the [email protected] mailing list * on irc in #junebug on the Freenode IRC network Issues can be filed in the GitHub issue tracker. Please don't use the issue tracker for general support queries. Running tests To run the tests locally: $ virtualenv ve $ source ve/bin/activate (ve) pip install -e . -r requirements-dev.txt (ve)$ trial junebug Making releases Releases are done according to git flow, and sticks to semantic versioning for selecting a new version number. You should ensure that the release notes in docs/release-notes.rst are up to date before doing a new release. To create a new release, make sure you're on the develop branch, and then use the utils script to change the package version: $ git checkout develop $ ./utils/bump-version.sh 0.1.0 Then, commit the changed files and tag that commit: $ git commit -m "Release 0.1.0" $ git tag junebug-0.1.0 Then, push the changes to develop, and push the new tag. This will start a travis build, which when it passes, will create a new release to PyPI: $ git push origin develop $ git push origin junebug-0.1.0 Then, you can merge and push this code to the master and relevant release branches: $ git checkout master $ git merge junebug-0.1.0 $ git push origin master $ git checkout release/0.1.x $ git merge junebug-0.1.0 $ git push origin release/0.1.x Developing on Junebug For every python file in the junebug directory, there is a corresponding file in the junebug/tests directory, that contains the unit tests for that file. Any added fixes should have a relevant test added to ensure that any future changes cannot reintroduce the bug. Any added features should have relevant tests to ensure that the features work as intended. Each pull request should include any relevant changes to the documentation, including updating the release notes to include the changes made in the pull request. junebug.amqp This module is responsible for maintaining an AMQP connection, and sending an receiving messages over that connection. junebug.api This module is responsible for housing the logic of each of the HTTP API endpoints. It uses Klein , which is a web framework similar to Flask , but runs on top of Twisted and supports returning deferreds, which allows us to perform async actions in our response generation, without blocking. junebug.channel This module contains our currently only implementation of a Junebug channel. This implementation is an in-memory implementation, where new channels are started as Twisted services. Other possible future implementations might include a process based implementation, where each channel is started as a new process, or a Mesos based implementation, where each channel is started as a new container within a cluster. Any new channel implementations would need to implement all public methods on the Channel class. junebug.command_line This module contains all configuration, processing, and running of services related to starting Junebug using the command line interface. Any changes to the configuration options should also be made to the file-based yaml configuration options, found in junebug/config.py junebug.config This module contains a confmodel class, which is used to validate the yaml file that can be used to specify configuration options for Junebug. Any changes to the configuration options should also be made in the command line arguments, found in junebug/command_line.py junebug.error This module contains error classes that are shared between all Junebug modules. junebug.logging_service This module contains the logging observer, which is used to observe logs from specific channels, and to write these logs to separate files, so that each channel can have its logs displayed separately. It also contains some utility methods to read these log files into a list of objects. junebug.plugin This module contains the base class for all Junebug plugins. It shows what functions plugin implementors would need to implement. junebug.plugins.* Each module in this package contains a junebug plugin that is built into the core Junebug code base. junebug.service This module houses the main Junebug twisted services, which runs the http API, and has all the transports as its children. junebug.stores This module houses all the different stores that we have. Currently they're all backed by Redis, and store channel, message, and event related information. junebug.utils This module houses utility functions that are used all over Junebug. junebug.validate This module contains some helper functions for defining validators that are use to validate requests coming into the HTTP API. junebug.workers This module contains the Vumi workers that Junebug runs for each channel. This includes things like the message forwarding worker, which forwards inbound messages over AMQP and HTTP, and stores the messages and events in the various stores, and the channel status worker, which stores and forwards channel status updates. About A system for managing text messaging transports with via RESTful HTTP interface. junebug.readthedocs.org/ Resources Readme BSD-3-Clause license Contributing Contributing Activity Custom properties Stars 120 stars Watchers 26 watching Forks 23 forks Report repository Releases Packages Used by Contributors Languages Footer (c) 2026 GitHub, Inc. Footer navigation * Terms * Privacy * Security * Status * Community * Docs * Contact * Manage cookies * Do not share my personal information You can’t perform that action at this time.

Links found on this page

  1. Skip to content [direct]
  2. Sign in [direct]
  3. GitHub Copilot Write better code with AI [direct]
  4. GitHub Copilot app Direct agents from issue to merge [direct]
  5. MCP Registry Integrate external tools [direct]
  6. Actions Automate any workflow [direct]
  7. Codespaces Instant dev environments [direct]
  8. Issues Plan and track work [direct]
  9. Code Review Manage code changes [direct]
  10. Code Quality Enforce quality at merge [direct]
  11. GitHub Advanced Security Find and fix vulnerabilities [direct]
  12. Code security Secure your code as you build [direct]
  13. Secret protection Stop leaks before they start [direct]
  14. Why GitHub [direct]
  15. Documentation [direct]
  16. Blog [direct]
  17. Changelog [direct]
  18. Marketplace [direct]
  19. View all features [direct]
  20. Enterprises [direct]
  21. Small and medium teams [direct]
  22. Startups [direct]
  23. Nonprofits [direct]
  24. App Modernization [direct]
  25. DevSecOps [direct]
  26. DevOps [direct]
  27. CI/CD [direct]
  28. View all use cases [direct]
  29. Healthcare [direct]
  30. Financial services [direct]
  31. Manufacturing [direct]
  32. Government [direct]
  33. View all industries [direct]
  34. View all solutions [direct]
  35. AI [direct]
  36. Software Development [direct]
  37. DevOps [direct]
  38. Security [direct]
  39. View all topics [direct]
  40. Customer stories [direct]
  41. Events & webinars [direct]
  42. Ebooks & reports [direct]
  43. Business insights [direct]
  44. GitHub Skills [direct]
  45. Customer support [direct]
  46. Community forum [direct]
  47. Trust center [direct]
  48. Partners [direct]
  49. View all resources [direct]
  50. GitHub Sponsors Fund open source developers [direct]
  51. Security Lab [direct]
  52. Maintainer Community [direct]
  53. GitHub Stars [direct]
  54. Archive Program [direct]
  55. Topics [direct]
  56. Trending [direct]
  57. Collections [direct]
  58. Copilot for Business Enterprise-grade AI features [direct]
  59. Premium Support Enterprise-grade 24/7 support [direct]
  60. Pricing [direct]
  61. Sign up [direct]
  62. praekeltfoundation [direct]
  63. Notifications [direct]
  64. Issues 22 [direct]
  65. Pull requests 1 [direct]
  66. Actions [direct]
  67. Projects [direct]
  68. Wiki [direct]
  69. Security and quality 0 [direct]
  70. Insights [direct]
  71. Branches [direct]
  72. Tags [direct]
  73. 933 Commits [direct]
  74. .github/ workflows [direct]
  75. docs [direct]
  76. example-app [direct]
  77. junebug [direct]
  78. utils [direct]
  79. .gitignore [direct]
  80. .travis.yml [direct]