{"id":13775653,"url":"https://github.com/galoisinc/haskell-tor","last_synced_at":"2025-05-11T08:32:51.326Z","repository":{"id":54047703,"uuid":"46326802","full_name":"GaloisInc/haskell-tor","owner":"GaloisInc","description":"A Haskell implementation of the Tor protocol.","archived":false,"fork":false,"pushed_at":"2017-11-03T23:50:56.000Z","size":891,"stargazers_count":272,"open_issues_count":25,"forks_count":19,"subscribers_count":27,"default_branch":"master","last_synced_at":"2024-11-02T05:32:58.460Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Haskell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/GaloisInc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-11-17T06:07:28.000Z","updated_at":"2024-11-01T23:38:46.000Z","dependencies_parsed_at":"2022-08-13T06:11:15.853Z","dependency_job_id":null,"html_url":"https://github.com/GaloisInc/haskell-tor","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaloisInc%2Fhaskell-tor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaloisInc%2Fhaskell-tor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaloisInc%2Fhaskell-tor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GaloisInc%2Fhaskell-tor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GaloisInc","download_url":"https://codeload.github.com/GaloisInc/haskell-tor/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225027483,"owners_count":17409443,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T17:01:44.854Z","updated_at":"2024-11-17T10:31:47.135Z","avatar_url":"https://github.com/GaloisInc.png","language":"Haskell","funding_links":[],"categories":["\u003ca id=\"6e80463404d46f0493cf6e84597e4b5c\"\u003e\u003c/a\u003e工具"],"sub_categories":["\u003ca id=\"e99ba5f3de02f68412b13ca718a0afb6\"\u003e\u003c/a\u003eTor\u0026\u0026\u0026Onion\u0026\u0026洋葱"],"readme":"# A Tor Implementation in Haskell\n\n[![Build Status](https://secure.travis-ci.org/GaloisInc/haskell-tor.svg?branch=master)](http://travis-ci.org/GaloisInc/haskell-tor)\n\n    This version of haskell-tor is (C) 2015 Galois, Inc., and distributed under\n    a standard, three-clause BSD license. Please see the file LICENSE,\n    distributed with this software, for specific terms and conditions.\n\n## What is Tor?\n\nTor is a secure onion routing network for providing anonymized access to both\nthe public Internet as well as a series of Tor-internal hidden services. Much\nmore information about Tor can be found at https://www.torproject.org.\n\nMany thanks to all the hard work that project has put into developing and\nevangelizing Tor.\n\n## What is in this repository?\n\nThis repository contains a Tor implementation in Haskell. It is eventually\ndesigned to be a fully-compliant Tor implementation, but at the moment lacks\nsome features:\n\n  * Support for finding or implementing hidden services.\n  * Proper flow-control support.\n  * Statistics updating.\n  * Directory server support.\n\nUsing this library as an entrance node (i.e., to create anonymized connections\nto hosts on the Internet) is fairly well tested and should be functional. Relay\nand exit node support is implemented but much less well tested. For whichever\nuse case you have, please report any problems you find to the GitHub issue\ntracker.\n\n## Building haskell-tor\n\nThis library uses cabal as its build system, and should work for Mac, Unix, and\nHaLVM-based installations. Windows support may work ... we just haven't tested\nit.\n\n### Understanding Network Stacks\n\nThe haskell-tor library is built such that it can use one of two built-in\nnetwork stacks and/or a third-party network stack that you provide. How you get\neach of these is governed by two flags that correspond to the two network\nstacks:\n\n  * `network` ensures that haskell-tor includes defaults for the standard,\n    sockets-based network stack as described in the Haskell `network` library.\n\n  * `hans` ensures that haskell-tor includes defaults for the Haskell\n    Network stack, which is a clean-slate networks stack that runs off raw\n    Ethernet frames.\n\nThe defaults are a little complicated. To help try to sort things out, here is a\ntable that describes all the combinations of flags, and what the default is for\neach platform:\n\n| Default | Platform | `network` | `hans` | Meaning                                 |\n|---------|----------|-----------|--------|-----------------------------------------|\n|         | Normal   | True      | True   | Support for both `hans` and `network`   |\n|   *     | Normal   | True      | False  | Support only `network`                  |\n|         | Normal   | False     | True   | Support only `hans`                     |\n|         | Normal   | False     | False  | No network stack support (BYONS)        |\n|         | HaLVM    | True      | True   | Support only `hans` (`network` ignored) |\n|         | HaLVM    | True      | False  | No network stack support (see prev.)    |\n|   *     | HaLVM    | False     | True   | Support only `hans`                     |\n|         | HaLVM    | False     | False  | No network stack support (BYONS)        |\n\n### Standard Cabal Constraints\n\nIf you're building with the HaLVM, please add the constraints `--constraint \"tls\n+hans\"`, `--constraint \"tls -network\"`, and `-f-network` to your build flags,\nand if you're using the `integer-simple` library (for example, to avoid GPL\nentanglements with unikernels), you should add the constraints `--constraint\n\"cryptonite -integer-gmp\"`, `--constraint \"scientific +integer-simple\"` and\n`--constraint \"scientific \u003c 0.3.4.1\"`.\n\nIn either case, we strongly suggest using sandboxes to keep everything nice and\ntidy.\n\n## Important Note\n\nThis is an early implementation of Tor that has not been peer-reviewed. Those\nwith a true, deep need for anonymity should strongly consider using the mainline\nTor client until and unless this version receives appropriate extensions,\ntesting, and review.\n\n## Usage\n\nAs with most Haskell packages, this package can either be used as a library or\nas a binary package. Currently, the executable binary will simply perform an\nexample get from whatismyip.com. Extending this to support a wider range of\nfeatures is an open issue.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaloisinc%2Fhaskell-tor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgaloisinc%2Fhaskell-tor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgaloisinc%2Fhaskell-tor/lists"}