cabal-version: 1.12 name: simplexmq version: 6.4.8.0 synopsis: SimpleXMQ message broker description: This package includes <./docs/Simplex-Messaging-Server.html server>, <./docs/Simplex-Messaging-Client.html client> and <./docs/Simplex-Messaging-Agent.html agent> for SMP protocols: . * * . See built with SimpleXMQ broker. category: Chat, Network, Web, System, Cryptography homepage: https://github.com/simplex-chat/simplexmq#readme author: simplex.chat maintainer: chat@simplex.chat copyright: 2020-2022 simplex.chat license: AGPL-3 license-file: LICENSE build-type: Simple extra-source-files: README.md CHANGELOG.md cbits/sha512.h cbits/sntrup761.h apps/smp-server/static/index.html apps/smp-server/static/link.html apps/smp-server/static/media/apk_icon.png apps/smp-server/static/media/apple_store.svg apps/smp-server/static/media/contact.js apps/smp-server/static/media/contact_page_mobile.png apps/smp-server/static/media/f_droid.svg apps/smp-server/static/media/favicon.ico apps/smp-server/static/media/GilroyBold.woff2 apps/smp-server/static/media/GilroyLight.woff2 apps/smp-server/static/media/GilroyMedium.woff2 apps/smp-server/static/media/GilroyRegular.woff2 apps/smp-server/static/media/GilroyRegularItalic.woff2 apps/smp-server/static/media/google_play.svg apps/smp-server/static/media/logo-dark.png apps/smp-server/static/media/logo-light.png apps/smp-server/static/media/logo-symbol-dark.svg apps/smp-server/static/media/logo-symbol-light.svg apps/smp-server/static/media/moon.svg apps/smp-server/static/media/qrcode.js apps/smp-server/static/media/script.js apps/smp-server/static/media/style.css apps/smp-server/static/media/sun.svg apps/smp-server/static/media/swiper-bundle.min.css apps/smp-server/static/media/swiper-bundle.min.js apps/smp-server/static/media/tailwind.css apps/smp-server/static/media/testflight.png flag swift description: Enable swift JSON format manual: True default: False flag use_crypton description: Use crypton etc. in cryptostore manual: True default: True flag client_library description: Don't build server-related code. manual: True default: False flag client_postgres description: Build with PostgreSQL instead of SQLite. manual: True default: False flag server_postgres description: Build server with support of PostgreSQL. manual: True default: False library exposed-modules: Simplex.FileTransfer.Agent Simplex.FileTransfer.Chunks Simplex.FileTransfer.Client Simplex.FileTransfer.Client.Agent Simplex.FileTransfer.Client.Presets Simplex.FileTransfer.Crypto Simplex.FileTransfer.Description Simplex.FileTransfer.Protocol Simplex.FileTransfer.Transport Simplex.FileTransfer.Types Simplex.FileTransfer.Util Simplex.Messaging.Agent Simplex.Messaging.Agent.Client Simplex.Messaging.Agent.Env.SQLite Simplex.Messaging.Agent.Lock Simplex.Messaging.Agent.NtfSubSupervisor Simplex.Messaging.Agent.Protocol Simplex.Messaging.Agent.QueryString Simplex.Messaging.Agent.RetryInterval Simplex.Messaging.Agent.Stats Simplex.Messaging.Agent.Store Simplex.Messaging.Agent.Store.AgentStore Simplex.Messaging.Agent.Store.Common Simplex.Messaging.Agent.Store.DB Simplex.Messaging.Agent.Store.Interface Simplex.Messaging.Agent.Store.Migrations Simplex.Messaging.Agent.Store.Migrations.App Simplex.Messaging.Agent.Store.Postgres.Options Simplex.Messaging.Agent.Store.Shared Simplex.Messaging.Agent.TRcvQueues Simplex.Messaging.Client Simplex.Messaging.Client.Agent Simplex.Messaging.Compression Simplex.Messaging.Crypto Simplex.Messaging.Crypto.File Simplex.Messaging.Crypto.Lazy Simplex.Messaging.Crypto.Ratchet Simplex.Messaging.Crypto.SNTRUP761 Simplex.Messaging.Crypto.SNTRUP761.Bindings Simplex.Messaging.Crypto.SNTRUP761.Bindings.Defines Simplex.Messaging.Crypto.SNTRUP761.Bindings.FFI Simplex.Messaging.Crypto.SNTRUP761.Bindings.RNG Simplex.Messaging.Crypto.ShortLink Simplex.Messaging.Encoding Simplex.Messaging.Encoding.String Simplex.Messaging.Notifications.Client Simplex.Messaging.Notifications.Protocol Simplex.Messaging.Notifications.Transport Simplex.Messaging.Notifications.Types Simplex.Messaging.Parsers Simplex.Messaging.Protocol Simplex.Messaging.Server.Expiration Simplex.Messaging.Server.QueueStore.Postgres.Config Simplex.Messaging.Server.QueueStore.QueueInfo Simplex.Messaging.ServiceScheme Simplex.Messaging.Session Simplex.Messaging.Agent.Store.Entity Simplex.Messaging.TMap Simplex.Messaging.Transport Simplex.Messaging.Transport.Buffer Simplex.Messaging.Transport.Client Simplex.Messaging.Transport.Credentials Simplex.Messaging.Transport.HTTP2 Simplex.Messaging.Transport.HTTP2.Client Simplex.Messaging.Transport.HTTP2.File Simplex.Messaging.Transport.HTTP2.Server Simplex.Messaging.Transport.KeepAlive Simplex.Messaging.Transport.Server Simplex.Messaging.Transport.Shared Simplex.Messaging.Util Simplex.Messaging.Version Simplex.Messaging.Version.Internal Simplex.RemoteControl.Client Simplex.RemoteControl.Discovery Simplex.RemoteControl.Discovery.Multicast Simplex.RemoteControl.Invitation Simplex.RemoteControl.Types if flag(client_postgres) exposed-modules: Simplex.Messaging.Agent.Store.Postgres.Migrations.App Simplex.Messaging.Agent.Store.Postgres.Migrations.M20241210_initial Simplex.Messaging.Agent.Store.Postgres.Migrations.M20250203_msg_bodies Simplex.Messaging.Agent.Store.Postgres.Migrations.M20250322_short_links Simplex.Messaging.Agent.Store.Postgres.Migrations.M20250702_conn_invitations_remove_cascade_delete else exposed-modules: Simplex.Messaging.Agent.Store.SQLite Simplex.Messaging.Agent.Store.SQLite.Common Simplex.Messaging.Agent.Store.SQLite.DB Simplex.Messaging.Agent.Store.SQLite.Migrations Simplex.Messaging.Agent.Store.SQLite.Migrations.App Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220101_initial Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220301_snd_queue_keys Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220322_notifications Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220608_v2 Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220625_v2_ntf_mode Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220811_onion_hosts Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220817_connection_ntfs Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220905_commands Simplex.Messaging.Agent.Store.SQLite.Migrations.M20220915_connection_queues Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230110_users Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230117_fkey_indexes Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230120_delete_errors Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230217_server_key_hash Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230223_files Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230320_retry_state Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230401_snd_files Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230510_files_pending_replicas_indexes Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230516_encrypted_rcv_message_hashes Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230531_switch_status Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230615_ratchet_sync Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230701_delivery_receipts Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230720_delete_expired_messages Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230722_indexes Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230814_indexes Simplex.Messaging.Agent.Store.SQLite.Migrations.M20230829_crypto_files Simplex.Messaging.Agent.Store.SQLite.Migrations.M20231222_command_created_at Simplex.Messaging.Agent.Store.SQLite.Migrations.M20231225_failed_work_items Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240121_message_delivery_indexes Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240124_file_redirect Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240223_connections_wait_delivery Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240225_ratchet_kem Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240417_rcv_files_approved_relays Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240624_snd_secure Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240702_servers_stats Simplex.Messaging.Agent.Store.SQLite.Migrations.M20240930_ntf_tokens_to_delete Simplex.Messaging.Agent.Store.SQLite.Migrations.M20241007_rcv_queues_last_broker_ts Simplex.Messaging.Agent.Store.SQLite.Migrations.M20241224_ratchet_e2e_snd_params Simplex.Messaging.Agent.Store.SQLite.Migrations.M20250203_msg_bodies Simplex.Messaging.Agent.Store.SQLite.Migrations.M20250322_short_links Simplex.Messaging.Agent.Store.SQLite.Migrations.M20250702_conn_invitations_remove_cascade_delete if flag(client_postgres) || flag(server_postgres) exposed-modules: Simplex.Messaging.Agent.Store.Postgres Simplex.Messaging.Agent.Store.Postgres.Common Simplex.Messaging.Agent.Store.Postgres.DB Simplex.Messaging.Agent.Store.Postgres.Migrations Simplex.Messaging.Agent.Store.Postgres.Util if !flag(client_library) exposed-modules: Simplex.FileTransfer.Client.Main Simplex.FileTransfer.Server Simplex.FileTransfer.Server.Control Simplex.FileTransfer.Server.Env Simplex.FileTransfer.Server.Main Simplex.FileTransfer.Server.Prometheus Simplex.FileTransfer.Server.Stats Simplex.FileTransfer.Server.Store Simplex.FileTransfer.Server.StoreLog Simplex.Messaging.Server Simplex.Messaging.Server.CLI Simplex.Messaging.Server.Control Simplex.Messaging.Server.Env.STM Simplex.Messaging.Server.Information Simplex.Messaging.Server.Main Simplex.Messaging.Server.Main.GitCommit Simplex.Messaging.Server.Main.Init Simplex.Messaging.Server.MsgStore Simplex.Messaging.Server.MsgStore.Journal Simplex.Messaging.Server.MsgStore.Journal.SharedLock Simplex.Messaging.Server.MsgStore.STM Simplex.Messaging.Server.MsgStore.Types Simplex.Messaging.Server.NtfStore Simplex.Messaging.Server.Prometheus Simplex.Messaging.Server.QueueStore Simplex.Messaging.Server.QueueStore.STM Simplex.Messaging.Server.QueueStore.Types Simplex.Messaging.Server.Stats Simplex.Messaging.Server.StoreLog Simplex.Messaging.Server.StoreLog.ReadWrite Simplex.Messaging.Server.StoreLog.Types Simplex.Messaging.Transport.WebSockets if flag(server_postgres) exposed-modules: Simplex.Messaging.Notifications.Server Simplex.Messaging.Notifications.Server.Control Simplex.Messaging.Notifications.Server.Env Simplex.Messaging.Notifications.Server.Main Simplex.Messaging.Notifications.Server.Prometheus Simplex.Messaging.Notifications.Server.Push.APNS Simplex.Messaging.Notifications.Server.Push.APNS.Internal Simplex.Messaging.Notifications.Server.Stats Simplex.Messaging.Notifications.Server.Store Simplex.Messaging.Notifications.Server.Store.Migrations Simplex.Messaging.Notifications.Server.Store.Postgres Simplex.Messaging.Notifications.Server.Store.Types Simplex.Messaging.Notifications.Server.StoreLog Simplex.Messaging.Server.QueueStore.Postgres Simplex.Messaging.Server.QueueStore.Postgres.Migrations other-modules: Paths_simplexmq hs-source-dirs: src default-extensions: StrictData ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=incomplete-uni-patterns -Werror=missing-home-modules -Werror=missing-methods -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -O2 include-dirs: cbits c-sources: cbits/sha512.c cbits/sntrup761.c extra-libraries: crypto build-depends: aeson ==2.2.* , asn1-encoding ==0.9.* , asn1-types ==0.3.* , async ==2.2.* , attoparsec ==0.14.* , base >=4.14 && <5 , base64-bytestring >=1.0 && <1.3 , composition ==1.0.* , constraints >=0.12 && <0.14 , containers ==0.6.* , crypton ==0.34.* , crypton-x509 ==1.7.* , crypton-x509-store ==1.6.* , crypton-x509-validation ==1.6.* , cryptostore ==0.3.* , data-default ==0.7.* , directory ==1.3.* , filepath ==1.4.* , hourglass ==0.2.* , http-types ==0.12.* , http2 >=4.2.2 && <4.3 , iproute ==1.7.* , iso8601-time ==0.1.* , memory ==0.18.* , mtl >=2.3.1 && <3.0 , network >=3.1.2.7 && <3.2 , network-info ==0.2.* , network-transport ==0.5.6 , network-udp ==0.0.* , random >=1.1 && <1.3 , scientific ==0.3.7.* , simple-logger ==0.1.* , socks ==0.6.* , stm ==2.5.* , time ==1.12.* , time-manager ==0.0.* , tls >=1.9.0 && <1.10 , transformers ==0.6.* , unliftio ==0.2.* , unliftio-core ==0.2.* , yaml ==0.11.* , zstd ==0.1.3.* default-language: Haskell2010 if flag(swift) cpp-options: -DswiftJSON if !flag(client_library) build-depends: case-insensitive ==1.2.* , hashable ==1.4.* , ini ==0.4.1 , optparse-applicative >=0.15 && <0.17 , process ==1.6.* , temporary ==1.3.* , websockets ==0.12.* if flag(client_postgres) || flag(server_postgres) build-depends: postgresql-libpq >=0.10.0.0 , postgresql-simple ==0.7.* , raw-strings-qq ==1.1.* if flag(client_postgres) cpp-options: -DdbPostgres else build-depends: direct-sqlcipher ==2.3.* , sqlcipher-simple ==0.4.* if flag(server_postgres) cpp-options: -DdbServerPostgres build-depends: hex-text ==0.1.* if impl(ghc >= 9.6.2) build-depends: bytestring ==0.11.* , template-haskell ==2.20.* , text >=2.0.1 && <2.2 if impl(ghc < 9.6.2) build-depends: bytestring ==0.10.* , template-haskell ==2.16.* , text >=1.2.3.0 && <1.3 executable ntf-server if flag(client_library) buildable: False if flag(server_postgres) cpp-options: -DdbServerPostgres else buildable: False main-is: Main.hs other-modules: Paths_simplexmq hs-source-dirs: apps/ntf-server default-extensions: StrictData ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=incomplete-uni-patterns -Werror=missing-methods -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -O2 -threaded -rtsopts build-depends: base , simple-logger , simplexmq default-language: Haskell2010 executable smp-server if flag(client_library) buildable: False if flag(server_postgres) cpp-options: -DdbServerPostgres main-is: Main.hs other-modules: Static Static.Embedded Paths_simplexmq hs-source-dirs: apps/smp-server apps/smp-server/web default-extensions: StrictData ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=incomplete-uni-patterns -Werror=missing-methods -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -O2 -threaded -rtsopts build-depends: base , bytestring , directory , file-embed , filepath , network , simple-logger , simplexmq , text , unliftio , wai , wai-app-static , warp ==3.3.30 , warp-tls ==3.4.7 default-language: Haskell2010 executable xftp if flag(client_library) buildable: False main-is: Main.hs other-modules: Paths_simplexmq hs-source-dirs: apps/xftp default-extensions: StrictData ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=incomplete-uni-patterns -Werror=missing-methods -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -O2 -threaded -rtsopts build-depends: base , simplexmq default-language: Haskell2010 executable xftp-server if flag(client_library) buildable: False main-is: Main.hs other-modules: Paths_simplexmq hs-source-dirs: apps/xftp-server default-extensions: StrictData ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=incomplete-uni-patterns -Werror=missing-methods -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -O2 -threaded -rtsopts build-depends: base , simple-logger , simplexmq default-language: Haskell2010 test-suite simplexmq-test if flag(client_library) buildable: False type: exitcode-stdio-1.0 main-is: Test.hs other-modules: AgentTests AgentTests.ConnectionRequestTests AgentTests.DoubleRatchetTests AgentTests.EqInstances AgentTests.FunctionalAPITests AgentTests.MigrationTests AgentTests.ServerChoice AgentTests.ShortLinkTests CLITests CoreTests.BatchingTests CoreTests.CryptoFileTests CoreTests.CryptoTests CoreTests.EncodingTests CoreTests.MsgStoreTests CoreTests.RetryIntervalTests CoreTests.SOCKSSettings CoreTests.StoreLogTests CoreTests.TRcvQueuesTests CoreTests.UtilTests CoreTests.VersionRangeTests FileDescriptionTests RemoteControl ServerTests SMPAgentClient SMPClient SMPProxyTests Util XFTPAgent XFTPCLI XFTPClient XFTPServerTests Static Static.Embedded Paths_simplexmq if flag(client_postgres) other-modules: Fixtures else other-modules: AgentTests.SchemaDump AgentTests.SQLiteTests if flag(server_postgres) other-modules: AgentTests.NotificationTests NtfClient NtfServerTests PostgresSchemaDump hs-source-dirs: tests apps/smp-server/web default-extensions: StrictData -- add -fhpc to ghc-options to run tests with coverage ghc-options: -Weverything -Wno-missing-exported-signatures -Wno-missing-import-lists -Wno-missed-specialisations -Wno-all-missed-specialisations -Wno-unsafe -Wno-safe -Wno-missing-local-signatures -Wno-missing-kind-signatures -Wno-missing-deriving-strategies -Wno-monomorphism-restriction -Wno-prepositive-qualified-module -Wno-implicit-prelude -Wno-missing-safe-haskell-mode -Wno-missing-export-lists -Wno-partial-fields -Wcompat -Werror=incomplete-record-updates -Werror=incomplete-patterns -Werror=incomplete-uni-patterns -Werror=missing-methods -Werror=tabs -Wredundant-constraints -Wincomplete-record-updates -Wunused-type-patterns -O2 -threaded -rtsopts -with-rtsopts=-A64M -with-rtsopts=-N1 build-depends: base , aeson , async , base64-bytestring , bytestring , containers , crypton , crypton-x509 , crypton-x509-store , crypton-x509-validation , directory , file-embed , filepath , generic-random ==1.5.* , hashable , hspec ==2.11.* , hspec-core ==2.11.* , http-client , http-types , http2 , HUnit ==1.6.* , ini , iso8601-time , main-tester ==0.2.* , mtl , network , QuickCheck ==2.14.* , random , silently ==1.2.* , simple-logger , simplexmq , stm , text , time , timeit ==2.0.* , transformers , unliftio , unliftio-core , unordered-containers , wai , wai-app-static , warp , warp-tls , yaml default-language: Haskell2010 if flag(server_postgres) cpp-options: -DdbServerPostgres if flag(client_postgres) cpp-options: -DdbPostgres else build-depends: memory , sqlcipher-simple if !flag(client_postgres) || flag(client_postgres) || flag(server_postgres) build-depends: deepseq ==1.4.* , process if flag(client_postgres) || flag(server_postgres) build-depends: postgresql-simple ==0.7.*