bkmoovio / wire

FedWire funds service file parser and writer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

moov-io/wire

GoDoc Build Status Coverage Status Go Report Card Apache 2 licensed

Package github.com/moov-io/wire implements a reader and writer written in Go for creating, parsing and validating FED Wire Messages (FEDWire)

Docs: docs.moov.io | api docs

Project Status

Moov WIRE is under active development and in production for multiple companies. Please star the project if you are interested in its progress.

Usage

Go library

github.com/moov-io/wire offers a Go based ACH file reader and writer. To get started checkout a specific example:

Supported Business Function Codes
Business Function Code Name Example Read Write
DRB Bank DrawDown Request Link Link Link
BTR BankTransfer Link Link Link
CKS CheckSameDaySettlement Link Link Link
DRC CustomerCorporateDrawdownRequest Link Link Link
CTR CustomerTransfer Link Link Link
CTP CustomerTransferPlus Link Link Link
CTP CustomerTransferPlusCOVS Link Link Link
DEP DepositSendersAccount Link Link Link
FFR FEDFundsReturned Link Link Link
FFS FEDFundsSold Link Link Link
SVC ServiceMessage Link Link Link

Docker

We publish a public docker image moov/wire on Docker Hub with ewire tagged release of Wire. No configuration is required to serve on :8088 and metrics at :9098/metrics in Prometheus format.

$ docker run -p 8080:8080 -p 9090:9090 moov/wire:latest
ts=2019-06-20T23:58:44.4931106Z caller=main.go:75 startup="Starting wire server version v0.1.0"
ts=2019-06-20T23:58:44.5010238Z caller=main.go:135 transport=HTTP addr=:8088
ts=2019-06-20T23:58:44.5018409Z caller=main.go:125 admin="listening on :9098"

$ curl localhost:8080/files
{"files":[],"error":null}

From Source

This project uses Go Modules and thus requires Go 1.11+. You can download the source code and we offer tagged and released versions as well. We highly recommend you use a tagged release for production.

$ git@github.com:moov-io/wire.git

# Pull down into the Go Module cache
$ go get -u github.com/moov-io/wire

$ go doc github.com/moov-io/wire fedWireMessage

Configuration

Environmental Variable Description Default
HTTPS_CERT_FILE Filepath containing a certificate (or intermediate chain) to be served by the HTTP server. Requires all traffic be over secure HTTP. Empty
HTTPS_KEY_FILE Filepath of a private key matching the leaf certificate from HTTPS_CERT_FILE. Empty
WIRE_FILE_TTL Time to live (TTL) for *wire.File objects stored in the in-memory repository. 0 = No TTL / Never delete files (Example: 240m)

Note: By design Wire does not persist (save) any data about the files, batches or entry details created. The only storage occurs in memory of the process and upon restart Wire will have no files, batches, or data saved. Also, no in memory encryption of the data is performed.

Fuzzing

We currently run fuzzing over wire in the form of a moov/wirefuzz Docker image. You can read more or run the image and report crasher examples to security@moov.io. Thanks!

Getting Help

channel info
Project Documentation Our project documentation available online.
Google Group moov-users The Moov users Google group is for contributors other people contributing to the Moov project. You can join them without a google account by sending an email to moov-users+subscribe@googlegroups.com. After receiving the join-request message, you can simply reply to that to confirm the subscription.
Twitter @moov_io You can follow Moov.IO's Twitter feed to get updates on our project(s). You can also tweet us questions or just share blogs or stories.
GitHub Issue If you are able to reproduce an problem please open a GitHub Issue under the specific project that caused the error.
moov-io slack Join our slack channel to have an interactive discussion about the development of the project. Request an invite to the slack channel

Supported and Tested Platforms

  • 64-bit Linux (Ubuntu, Debian), macOS, and Windows

Note: 32-bit platforms have known issues and are not supported.

Contributing

Yes please! Please review our Contributing guide and Code of Conduct to get started!

Note: This project uses Go Modules, which requires Go 1.11 or higher.

Releasing

To make a release of wire simply open a pull request with CHANGELOG.md and version.go updated with the next version number and details. You'll also need to push the tag (i.e. git push origin v1.0.0) to origin in order for CI to make the release.

License

Apache License 2.0 See LICENSE for details.

About

FedWire funds service file parser and writer

License:Apache License 2.0


Languages

Language:Go 98.1%Language:Shell 1.7%Language:Makefile 0.2%Language:Dockerfile 0.0%