Skip to content

zaneenders/butterfly

Repository files navigation

Butterfly

This repo contains a DistributedActorSystem implementation, and is more a play ground for me to explore and experiment with the language feature and learn about distributed systems.

Is more of a client server setup. Where the server can make calls to the client well the connection is up but the client has to initiate the call.

Testing

Run the test with SSL enabled

swift test --traits SSL

View test coverage

swift test --enable-code-coverage

llvm-cov report .build/debug/butterflyPackageTests.xctest --instr-profile=.build/debug/codecov/default.profdata --ignore-filename-regex='(.build|Tests)[/\\].*' 

Development

Trying to keep the project able to statically compile for Linux.

swift build --swift-sdk aarch64-swift-linux-musl
swift build --swift-sdk x86_64-swift-linux-musl

SSL

Generate keys for local testing

openssl req -x509 -newkey rsa:4096 -sha256 -days 365 -nodes \
  -keyout key.pem -out cert.pem \
  -subj "/CN=localhost" \
  -addext "subjectAltName=DNS:localhost,IP:::1"

To configure SSL certificate paths, set the following environment variable:

SSL_CERT_CHAIN_PATH=cert.pem
SSL_PRIVATE_KEY_PATH=key.pem

Butterfly uses swift-configuration to load the certs.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages