summaryrefslogtreecommitdiff
path: root/erebos.cabal
diff options
context:
space:
mode:
Diffstat (limited to 'erebos.cabal')
-rw-r--r--erebos.cabal86
1 files changed, 62 insertions, 24 deletions
diff --git a/erebos.cabal b/erebos.cabal
index 45e6526..f001a24 100644
--- a/erebos.cabal
+++ b/erebos.cabal
@@ -1,20 +1,20 @@
Cabal-Version: 3.0
Name: erebos
-Version: 0.1.4
+Version: 0.1.8.1
Synopsis: Decentralized messaging and synchronization
Description:
Library and simple CLI interface implementing the Erebos identity
management, decentralized messaging and synchronization protocol, along
with local storage.
- .
+
Erebos identity is based on locally stored cryptographic keys, all
communication is end-to-end encrypted. Multiple devices can be attached to
the same identity, after which they function interchangeably, without any
one being in any way "primary"; messages and other state data are then
synchronized automatically whenever the devices are able to connect with
one another.
- .
+
See README for usage of the CLI tool.
License: BSD-3-Clause
License-File: LICENSE
@@ -29,6 +29,7 @@ Extra-Doc-Files:
CHANGELOG.md
Extra-Source-Files:
src/Erebos/ICE/pjproject.h
+ src/Erebos/Network/ifaddrs.h
Flag ice
Description: Enable peer discovery with ICE support using pjproject
@@ -38,13 +39,18 @@ Flag ci
default: False
manual: True
+Flag cryptonite
+ description: Use deprecated 'cryptonite' package
+ default: False
+
source-repository head
type: git
- location: git://erebosprotocol.net/erebos
+ location: https://code.erebosprotocol.net/erebos
common common
ghc-options:
-Wall
+ -Wno-x-partial
-fdefer-typed-holes
if flag(ci)
@@ -54,7 +60,7 @@ common common
-Wno-error=unused-imports
build-depends:
- base >=4.13 && <4.20,
+ base ^>= { 4.15, 4.16, 4.17, 4.18, 4.19, 4.20, 4.21 },
default-extensions:
DefaultSignatures
@@ -94,40 +100,50 @@ library
hs-source-dirs: src
exposed-modules:
Erebos.Attach
- Erebos.Channel
Erebos.Chatroom
Erebos.Contact
Erebos.Conversation
+ Erebos.DirectMessage
+ Erebos.Discovery
+ Erebos.Error
Erebos.Identity
- Erebos.Message
Erebos.Network
- Erebos.Network.Protocol
+ Erebos.Object
Erebos.Pairing
Erebos.PubKey
Erebos.Service
+ Erebos.Service.Stream
Erebos.Set
Erebos.State
+ Erebos.Storable
Erebos.Storage
+ Erebos.Storage.Backend
+ Erebos.Storage.Head
Erebos.Storage.Key
Erebos.Storage.Merge
Erebos.Sync
- -- Used by test tool:
- Erebos.Storage.Internal
other-modules:
Erebos.Flow
- Erebos.Storage.List
+ Erebos.Network.Channel
+ Erebos.Network.Protocol
+ Erebos.Object.Internal
+ Erebos.Storage.Disk
+ Erebos.Storage.Internal
+ Erebos.Storage.Memory
Erebos.Storage.Platform
+ Erebos.UUID
Erebos.Util
c-sources:
src/Erebos/Network/ifaddrs.c
include-dirs:
src
+ includes:
+ src/Erebos/Network/ifaddrs.h
if flag(ice)
exposed-modules:
- Erebos.Discovery
Erebos.ICE
c-sources:
src/Erebos/ICE/pjproject.c
@@ -143,25 +159,35 @@ library
binary >=0.8 && <0.11,
bytestring >=0.10 && <0.13,
clock >=0.8 && < 0.9,
- containers >= 0.6 && <0.8,
- cryptonite >=0.25 && <0.31,
+ containers ^>= { 0.6, 0.7, 0.8 },
deepseq >= 1.4 && <1.6,
directory >= 1.3 && <1.4,
filepath >=1.4 && <1.6,
- hashable >=1.3 && <1.5,
- hashtables >=1.2 && <1.4,
- hinotify >=0.4 && <0.5,
+ fsnotify ^>= { 0.3, 0.4 },
+ hashable ^>= { 1.3, 1.4, 1.5 },
+ hashtables ^>= { 1.2, 1.3, 1.4 },
iproute >=1.7.12 && <1.8,
memory >=0.14 && <0.19,
mtl >=2.2 && <2.4,
- network >= 3.1 && <3.2,
+ network ^>= { 3.1, 3.2 },
stm >=2.5 && <2.6,
text >= 1.2 && <2.2,
- time >= 1.8 && <1.14,
- uuid >=1.3 && <1.4,
+ time ^>= { 1.8, 1.9, 1.10, 1.11, 1.12, 1.13, 1.14 },
+ uuid-types ^>= { 1.0.4 },
zlib >=0.6 && <0.8
- if true
+ if !flag(cryptonite)
+ build-depends:
+ crypton ^>= { 0.34, 1.0 },
+ else
+ build-depends:
+ cryptonite >=0.25 && <0.31,
+
+ if os(windows)
+ hs-source-dirs: src/windows
+ build-depends:
+ Win32 ^>= { 2.14 },
+ else
hs-source-dirs: src/unix
build-depends:
unix ^>= { 2.7, 2.8 },
@@ -175,23 +201,35 @@ executable erebos
main-is: Main.hs
other-modules:
Paths_erebos
+ State
+ Terminal
Test
Test.Service
Version
Version.Git
+ WebSocket
autogen-modules:
Paths_erebos
build-depends:
+ ansi-terminal ^>= { 0.11, 1.0, 1.1 },
bytestring,
- cryptonite,
directory,
erebos,
- haskeline >=0.7 && <0.9,
mtl,
network,
process >=1.6 && <1.7,
- template-haskell >=2.17 && <2.22,
+ stm,
+ template-haskell ^>= { 2.17, 2.18, 2.19, 2.20, 2.21, 2.22, 2.23 },
text,
time,
transformers >= 0.5 && <0.7,
+ uuid-types,
+ websockets ^>= { 0.12.7, 0.13 },
+
+ if !flag(cryptonite)
+ build-depends:
+ crypton,
+ else
+ build-depends:
+ cryptonite,