Git Product home page Git Product logo

fed's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fed's Issues

Two digit or more - FEDACH Routing number lookup

Search the routing number dictionary for results on the first two digits of a routing number or more. Lookup the RTN and get an array of possible results back. I am not sure if you will need to pass a state in the query or not.

Sending and RTN starting with "07391" should have 91 FedACH results (see below).

An example can be seen here:
https://www.frbservices.org/EPaymentsDirectory/achResults.html?bank=&aba=07391&state=IA&city=+&submitButton=Search&referredBy=searchAchPage

This will ultimately be exposed as a rest endpoint with pagination.

Row Routing number Name City State
1 0739-1004-6 CENTER POINT BANK & TRUST CO CENTER POINT IA
2 0739-1009-1 FIRST CENTRAL STATE BANK DE WITT IA
3 0739-1011-4 COMMUNITY STATE BANK JOHNSTON IA
4 0739-1023-7 FIRST NATIONAL BANK SHENANDOAH IA
5 0739-1026-6 CITIZENS SAVINGS BANK GILMAN IA
6 0739-1038-9 WALCOTT TRUST & SAVINGS BA WALCOTT IA
7 0739-1074-5 UNION STATE BANK GREENFIELD IA
8 0739-1092-3 WHITE STATE BANK SOUTH ENGLISH IA
9 0739-1106-1 CITY STATE BANK NORWALK IA
10 0739-1127-8 CRAWFORD COUNTY TRUST & SAVINGS BANK DENISON IA
11 0739-1151-1 BRIDGE COMMUNITY BANK MECHANICSVILLE IA
12 0739-1158-2 IOWA PRAIRIE BANK BRUNSVILLE IA
13 0739-1167-6 FARMERS STATE BANK MARION IA
14 0739-1181-2 ASHTON STATE BANK ASHTON IA
15 0739-1187-0 OHNWARD BANK & TRUST CASCADE IA
16 0739-1195-1 FARMERS SAVINGS BANK MARSHALLTOWN IA
17 0739-1206-0 BENTON COUNTY STATE BANK BLAIRSTOWN IA
18 0739-1207-3 UNITED BANK OF IOWA IDA GROVE IA
19 0739-1208-6 BLUE GRASS SAVINGS BANK BLUE GRASS IA
20 0739-1219-6 BREDA SAVINGS BANK BREDA IA
21 0739-1222-2 STATE BANK OF BROOKS CORNING IA
22 0739-1226-4 SE NATL BK MOLINE MOLINE IL
23 0739-1255-2 FARMERS SAVINGS BANK COLESBURG IA
24 0739-1275-6 DANVILLE STATE SAVINGS BAN DANVILLE IA
25 0739-1280-8 HERITAGE BANK MARION IA
26 0739-1283-7 DENVER SAVINGS BANK DENVER IA
27 0739-1319-5 FAIRFAX STATE SAVINGS BANK FAIRFAX IA
28 0739-1321-8 FREEDOMBANK ELKADER IA
29 0739-1330-2 FARMERS SAVINGS BANK FREDERIKA IA
30 0739-1334-4 SECURITY STATE BANK RADCLIFFE IA
31 0739-1342-5 FIRST STATE BANK LYNNVILLE IA
32 0739-1346-7 GATEWAY STATE BANK CLINTON IA
33 0739-1358-0 WESTSIDE STATE BANK WESTSIDE IA
34 0739-1367-4 MARION COUNTY STATE BANK PELLA IA
35 0739-1375-5 HILLS BANK AND TRUST CO HILLS IA
36 0739-1383-6 LEGACY BANK MITCHELLVILLE IA
37 0739-1395-9 IOWA STATE BANK CLARKSVILLE IA
38 0739-1422-0 LIBERTYVILLE SAVINGS BANK FAIRFIELD IA
39 0739-1426-2 HILLS BANK LISBON IA
40 0739-1428-8 COMMUNITY SAVINGS BANK MANCHESTER IA
41 0739-1435-6 LUANA SAVINGS BANK LUANA IA
42 0739-1436-9 TRUBANK INDIANOLA IA
43 0739-1439-8 FIDELITY BANK AND TRUST DYERSVILLE IA
44 0739-1441-1 FIRST STATE BANK LYNNVLLE IA
45 0739-1455-0 MAYNARD SAVINGS BANK MAYNARD IA
46 0739-1482-2 UNITED BANK OF IOWA IDA GROVE IA
47 0739-1486-4 CEDAR VALLEY BANK AND TRUST LAPORTE CITY IA
48 0739-1496-1 LIBERTY TRUST & SVGS BK DURANT IA
49 0739-1519-3 PALO SAVINGS BANK PALO IA
50 0739-1534-2 GRINNELL STATE BANK GRINNELL IA
51 0739-1544-9 STATE SAVINGS BANK RAKE IA
52 0739-1549-4 READLYN SAVINGS BANK READLYN IA
53 0739-1552-0 FIRST NATIONAL BANK REMBRANDT IA
54 0739-1565-6 ROWLEY SAVINGS BANK ROWLEY IA
55 0739-1567-2 FEDERATION BANK WASHINGTON IA
56 0739-1578-2 PIONEER BANK SIOUX CITY IA
57 0739-1581-8 STATE SAVINGS BANK BEDFORD IA
58 0739-1584-7 NORTHWEST BANK SPENCER IA
59 0739-1588-9 HEARTLAND BANK MANSON IA
60 0739-1591-5 CITIZENS SAVINGS BANK SPILLVILLE IA
61 0739-1636-7 CENTRAL STATE BANK ELKADER IA
62 0739-1640-6 WATKINS SAVINGS BANK WATKINS IA
63 0739-1642-2 WAYLAND STATE BANK WAYLAND IA
64 0739-1647-7 FARMERS & MERCHANTS BANK & TRUST BURLINGTON IA
65 0739-1648-0 WEST CHESTER SAVINGS BANK MUSCATINE IA
66 0739-1653-2 FARMERS SAVINGS BANK WEVER IA
67 0739-1654-5 FIRST TRUST & SAVGS BK WHEATLAND IA
68 0739-1666-8 PILOT GROVE SAVINGS BANK PILOT GROVE IA
69 0739-1677-8 LEIGHTON STATE BANK LEIGHTON IA
70 0739-1717-5 MELVIN SAVINGS BANK MELVIN IA
71 0739-1728-5 PEOPLES SAVINGS BANK CRAWFORDSVILLE IA
72 0739-1729-8 SWISHER TRUST & SAVINGS SWISHER IA
73 0739-1764-1 AMERICAN STATE BANK SIOUX CENTER IA
74 0739-1774-8 AMERICAN TRUST & SAVINGS BK LOWDEN IA
75 0739-1788-7 COMMUNITY STATE BANK ALBERT CITY IA
76 0739-1807-7 SECURITY SAVINGS BANK FARNHAMVILLE IA
77 0739-1810-3 FARMERS STATE BANK LAKE VIEW IA
78 0739-1832-3 FARMERS STATE BANK YALE IA
79 0739-1837-8 HOME STATE BANK ROYAL IA
80 0739-1839-4 ATKINS SAVINGS BANK & TRUST ATKINS IA
81 0739-1845-9 FARMERS SAVINGS BANK AND TRUST TRAER IA
82 0739-1856-9 FARMERS STATE BANK GRAFTON IA
83 0739-1860-8 UNITED BANK & TRUST CO SHEFFIELD IA
84 0739-1865-3 AMERICAN STATE BANK SIOUX CENTER IA
85 0739-1884-4 TITONKA SAVINGS BANK TITONKA IA
86 0739-1885-7 FARMERS TRUST AND SAVINGS BANK SPENCER IA
87 0739-1900-5 FARMERS SAVINGS BANK FOSTORIA IA
88 0739-1921-2 PEOPLES BANK JEFFERSON IA
89 0739-1941-6 PEOPLES BANK ROCK VALLEY IA
90 0739-1957-1 COMMERCIAL SAVINGS BANK CARROLL IA
91 0739-1991-1 SECURITY NATIONAL BANK SIOUX CITY IA

cmd/server: support TLS in HTTP server

We need to support TLS in our HTTP server. This protects requests from inspection along the various network paths and routing. It's also required as part of several guidelines and audit requirements.

Exact name match returns two identical results

Fed Version: 0.6.0

What were you trying to do?
Conduct an exact match name search for either FedACH or Fedwire.

What did you expect to see?
One result for each participant that matches.

What did you see?
Duplicated results for each participant that matches.

How can we reproduce the problem?

Use the following FedACH data file:

{
    "fedACHParticipants" : {
      "response" : {
        "code" : 100
      },
      "fedACHParticipants" : [
        {
          "routingNumber": "073905527",
          "officeCode": "O",
          "servicingFRBNumber": "071000301",
          "recordTypeCode": "1",
          "changeDate": "012908",
          "newRoutingNumber": "000000000",
          "customerName": "LINCOLN SAVINGS BANK",
          "customerAddress": "P O BOX E",
          "customerCity": "REINBECK",
          "customerState": "IA",
          "customerZip": "50669",
          "customerZipExt": "0159",
          "customerAreaCode" : "319",
          "customerPhonePrefix" : "788",
          "customerPhoneSuffix" : "6441",
          "institutionStatusCode": "1",
          "dataViewCode": "1"
        }
      ]
    }
  }

Run curl "localhost:8086/fed/ach/search?name=LINCOLN+SAVINGS+BANK", output below:

{"achParticipants":[{"routingNumber":"073905527","officeCode":"O","servicingFRBNumber":"071000301","recordTypeCode":"1","revised":"012908","newRoutingNumber":"000000000","customerName":"LINCOLN SAVINGS BANK","achLocation":{"address":"P O BOX E","city":"REINBECK","state":"IA","postalCode":"50669","postalCodeExtension":"0159"},"phoneNumber":"3197886441","statusCode":"1","viewCode":"1"},{"routingNumber":"073905527","officeCode":"O","servicingFRBNumber":"071000301","recordTypeCode":"1","revised":"012908","newRoutingNumber":"000000000","customerName":"LINCOLN SAVINGS BANK","achLocation":{"address":"P O BOX E","city":"REINBECK","state":"IA","postalCode":"50669","postalCodeExtension":"0159"},"phoneNumber":"3197886441","statusCode":"1","viewCode":"1"}],"wireParticipants":null}

Notice that a partial match does not return duplicate results:
Run curl "localhost:8086/fed/ach/search?name=LINCOLN", output below:

{"achParticipants":[{"routingNumber":"073905527","officeCode":"O","servicingFRBNumber":"071000301","recordTypeCode":"1","revised":"012908","newRoutingNumber":"000000000","customerName":"LINCOLN SAVINGS BANK","achLocation":{"address":"P O BOX E","city":"REINBECK","state":"IA","postalCode":"50669","postalCodeExtension":"0159"},"phoneNumber":"3197886441","statusCode":"1","viewCode":"1"}],"wireParticipants":null}

DefaultHeader can't be changed once APIClient is created

We have a use case where we would like to set x-user-id in the DefaultHeader for every call we make based on a user identifier. However, we're setting up the APIClient when the app starts up so we're not able to set the header at that time, since we want to track every user who makes these API calls. We would also like to avoid setting up a new client every time we want to issue an API call. Would it be possible to have a method attached to APIClient that adds key/value pairs to the DefaultHeader after the client has been created? Something similar to this: https://github.com/moov-io/fed/blob/master/client/client.go#L163. This functionality is also needed in the other APIs as well, ie. paygate, ofac, etc.

docker container fails to start with `FRB_ROUTING_NUMBER` and `FRB_DOWNLOAD_CODE` set in env

Docker container fails to start when FRB_ROUTING_NUMBER and FRB_DOWNLOAD_CODE is set

Steps to reproduce

  • start the docker container with env variables
    • FRB_ROUTING_NUMBER=121212
    • FRB_DOWNLOAD_CODE=121212

container fails to start with error - panic: problem downloading fedach: temp file: open /tmp/fedach-3993745650: no such file or directory

Full stack trace

ts=2022-08-02T19:29:10Z msg="Starting fed server version v0.8.1" level=info
ts=2022-08-02T19:29:10Z msg="download: attempting fedach" level=info
ts=2022-08-02T19:29:10Z msg="listening on [::]:9096" level=info
ts=2022-08-02T19:29:11Z msg="admin: problem starting admin http: http: Server closed" level=info
panic: problem downloading fedach: temp file: open /tmp/fedach-3993745650: no such file or directory

goroutine 1 [running]:
main.fedACHDataFile({0xa11860?, 0xc00000c1c8?})
        /go/src/github.com/moov-io/fed/cmd/server/reader.go:20 +0x174
main.main()
        /go/src/github.com/moov-io/fed/cmd/server/main.go:114 +0x506
ts=2022-08-02T19:29:16Z msg="Starting fed server version v0.8.1" level=info
ts=2022-08-02T19:29:16Z msg="download: attempting fedach" level=info
ts=2022-08-02T19:29:16Z msg="listening on [::]:9096" level=info
ts=2022-08-02T19:29:17Z msg="admin: problem starting admin http: http: Server closed" level=info
panic: problem downloading fedach: temp file: open /tmp/fedach-183196970: no such file or directory

goroutine 1 [running]:
main.fedACHDataFile({0xa11860?, 0xc0000a01c8?})
        /go/src/github.com/moov-io/fed/cmd/server/reader.go:20 +0x174
main.main()
        /go/src/github.com/moov-io/fed/cmd/server/main.go:114 +0x506

Looks the error is coming download.go:90 -> ioutil.TempFile(downloadDirectory, fmt.Sprintf("%s-*", listName))
Digging more, error happens when os/tempfile.go -> OpenFile(name, O_RDWR|O_CREATE|O_EXCL, 0600)

cmd/server: basic HTTP service setup

Similar to the OFAC setup this service should have the following basic things. The OFAC main.go is also available as a reference.

  • clean shutdown on OS signals
  • admin HTTP service (using github.com/moov-io/base/admin)
  • go-kit logging for INFO and ERROR events
  • Separate http.Server with timeouts and shutdown hook
  • Port registration in github.com/moov-io/base/http/bind
  • GET /ping route for deployment and quick status

Note on auth (replace OFAC with fed here):

Authentication works the following way in paygate:

An HTTP call like GET /v1/depositories/:id with a cookie or OAuth token will hit our LB (traefik) and a "forward auth" call gets made from traefik to our auth service. The cookie or OAuth token is checked, and if valid '200 OK' is returned to traefik. Only on that '200 OK' is the actual request proxied to paygate (or in this case ofac).

FEDACH api searcher read FedACHdir.txt file into memory

fed api searcher, read FedACHdir.txt file into memory, similar to ofac searcher

Review moov-io\ofac\cmd\server\download.go for basic model

For FEDACH research/consider converting url parameters to ToUpper, should eliminate need for preCompute for FEDACH

Thoughts on Adding a logo and/or domain field to institutions?

Hey there,

We're going to start using this project for transfers in our app and some of our designs call for some nice touches like having the logo of the bank and the banks website so you can confirm its correct.

I'd love to see us contribute something like this back if you all or the community at large finds it useful.

Frankly this is something I'd usually just build an index for since it does not change all that often but since Moov is here and I like @wadearnold I figure adding it to this project could benefit the ecosystem at large.

thoughts on this?

I realize if we added logos it would likely eat up some S3 bandwidth costs so will throw that in as a consideration too to be discussed.

Alternatively just adding urls you could use something like the clearbit logo API to make it work without potentially causing any sort of bandwidth problem

Routing to bank info lookup

I expect a function to take a routing number as input and return a valid record if it exists and nil if it does not.

Financial Institution Name Lookup

I expect to be able to Lookup a financial institution based on its name. This should leverage an exact match of the string initially and return nil if not found.

openapi.yaml is not in sync with actual JSON structure

The openapi.yaml specs define these properties:

    ACHDictionary:
      description: Search results containing ACHDictionary of Participants
      properties:
        ACHParticipants:
    WIREDictionary:
      description: Search results containing WIREDictionary of Participants
      properties:
        WIREParticipants:

These properties are starting with upper case letters.

However, the service actually returns fields named achParticipants and wireParticipants (starting lower case). This is breaking clients that are automatically generated from the openapi.yaml file.

Please update the openapi.yaml file. Thank you!

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

Awaiting Schedule

These updates are awaiting their schedule. Click on a checkbox to get an update now.

  • chore(deps): update all (major) (actions/checkout, actions/setup-go, bulma-clean-theme, github.com/docker/docker, github.com/hashicorp/golang-lru, github/codeql-action)
  • chore(deps): update github artifact actions to v4 (major) (actions/download-artifact, actions/upload-artifact)

Open

These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

Detected dependencies

bundler
docs/Gemfile
  • bulma-clean-theme undefined
  • github-pages undefined
  • jekyll-feed "~> 0.12"
  • tzinfo "~> 1.2"
  • wdm "~> 0.1.1"
docker-compose
docker-compose.yml
dockerfile
Dockerfile
  • golang 1.22
Dockerfile-fedtest
  • golang 1.22-alpine
Dockerfile-openshift
github-actions
.github/workflows/codeql.yaml
  • actions/checkout v2
  • github/codeql-action v2
  • github/codeql-action v2
.github/workflows/go.yml
  • actions/setup-go v4
  • actions/checkout v2
  • actions/setup-go v4
  • actions/checkout v2
.github/workflows/podman.yml
  • actions/setup-go v4
  • actions/checkout v2
  • redhat-actions/buildah-build v2
  • redhat-actions/podman-login v1
  • redhat-actions/push-to-registry v2
.github/workflows/release.yml
  • actions/setup-go v4
  • actions/checkout v2
  • actions/create-release v1
  • actions/upload-artifact v1
  • actions/setup-go v4
  • actions/checkout v2
  • actions/download-artifact v1
  • actions/upload-release-asset v1
  • actions/upload-release-asset v1
  • actions/upload-release-asset v1
  • actions/setup-go v4
  • actions/checkout v2
gomod
go.mod
  • go 1.21
  • go 1.22.4
  • github.com/antihax/optional v1.0.0
  • github.com/clearbit/clearbit-go v1.1.0
  • github.com/docker/docker v24.0.9+incompatible
  • github.com/go-kit/kit v0.13.0
  • github.com/gorilla/mux v1.8.1
  • github.com/hashicorp/golang-lru v0.6.0
  • github.com/moov-io/base v0.49.4
  • github.com/prometheus/client_golang v1.19.1
  • github.com/stretchr/testify v1.9.0
  • github.com/xrash/smetrics v0.0.0-20240521201337-686a1a2994c1@686a1a2994c1
  • golang.org/x/oauth2 v0.21.0
  • golang.org/x/text v0.16.0

  • Check this box to trigger a request for Renovate to run again on this repository

ACHDirectory Fuzzy search on Bank Name

If a 1-2-1 match is not found in the Name search and optional fuzzy search could be used to handle misspelling or other issues if the name was not found.

A package such as Fuzzy Search could be added to the Bank Name field for better results.

Additional packages to be tested closesmatch

Parse FedWire

The project contains and ACH endpoints and Fedwire endpoints. Currently only the ACH directory is parsed and exposed. We should add FedWire at some point.

Requires FedACH/ Fedwire data file to use (question)?

For clarification , the docker image is useful to run solely http server, the actual data file link still needs to exist in order to make calls.

I initially thought the lib helped run standalone validation for ACH and wire.

docker container fails to start with FRB_ROUTING_NUMBER and FRB_DOWNLOAD_CODE set in env

Docker container fails to start when FRB_ROUTING_NUMBER and FRB_DOWNLOAD_CODE is set

Steps to reproduce

  • start the docker container with env variables
    • FRB_ROUTING_NUMBER=121212
    • FRB_DOWNLOAD_CODE=121212
  • the container fails to start with error - panic: problem downloading fedach: temp file: open /tmp/fedach-3993745650: no such file or directory

Full stack trace

ts=2022-08-02T19:29:10Z msg="Starting fed server version v0.8.1" level=info
ts=2022-08-02T19:29:10Z msg="download: attempting fedach" level=info
ts=2022-08-02T19:29:10Z msg="listening on [::]:9096" level=info
ts=2022-08-02T19:29:11Z msg="admin: problem starting admin http: http: Server closed" level=info
panic: problem downloading fedach: temp file: open /tmp/fedach-3993745650: no such file or directory

goroutine 1 [running]:
main.fedACHDataFile({0xa11860?, 0xc00000c1c8?})
        /go/src/github.com/moov-io/fed/cmd/server/reader.go:20 +0x174
main.main()
        /go/src/github.com/moov-io/fed/cmd/server/main.go:114 +0x506
ts=2022-08-02T19:29:16Z msg="Starting fed server version v0.8.1" level=info
ts=2022-08-02T19:29:16Z msg="download: attempting fedach" level=info
ts=2022-08-02T19:29:16Z msg="listening on [::]:9096" level=info
ts=2022-08-02T19:29:17Z msg="admin: problem starting admin http: http: Server closed" level=info
panic: problem downloading fedach: temp file: open /tmp/fedach-183196970: no such file or directory

goroutine 1 [running]:
main.fedACHDataFile({0xa11860?, 0xc0000a01c8?})
        /go/src/github.com/moov-io/fed/cmd/server/reader.go:20 +0x174
main.main()
        /go/src/github.com/moov-io/fed/cmd/server/main.go:114 +0x506

Looks the error is coming from download.go:90 -> ioutil.TempFile(downloadDirectory, fmt.Sprintf("%s-*", listName))
Digging more, error happens when in os/tempfile.go -> OpenFile(name, O_RDWR|O_CREATE|O_EXCL, 0600)

Update values in openapi.yml

Update search values in openapi.yml

fed/ach/search

Update City, State, and Postal Code

fed/wire/search

Update City and State

Update schema examples to match search examples

Remove minimum and maximum from search

quote example string values

updates for ping

spike: search: offer URLs for Institution logo and website

Offering a logo for each FI and their homepage in search results would make it easier for consumers of Fed to display both in their applications. There's no central / authoritative source for this information, but we may be able to scrape it.

This is an issue to discuss the feature and how we'd implement it as it's been mentioned on slack.

openapi.yaml spec not in sync with the search response struct

Problem

Both FedACH and FedWire search returns SearchResponse struct but openapi spec says that it returns ACHDictionary and WIREDictionary respectively.

Resolution

openapi spec should be updated to return SearchResponse struct for both FedACH and FedWire.

Change Routing -> Name for Hatch Bank

Hi there,

Currently this routing number 322286188 is listed as

Racho Santa Fe Thrift & Loan but the bank has been renamed to Hatch Bank - would be great to update that in this file if possible

WIREDirectory search

WireDirectory Fuzzy search on Bank Name

WireDirectory Routing Number Search (minimum 2 digit search)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.