{"id":186927,"name":null,"description":"Flow Exporter implementation in go. CN contact: GV","url":"https://github.com/cn-tu/go-flows","last_synced_at":"2025-09-10T02:49:30.109Z","repository":{"id":43717288,"uuid":"118612739","full_name":"CN-TU/go-flows","owner":"CN-TU","description":"Flow Exporter implementation in go. CN contact: GV","archived":false,"fork":false,"pushed_at":"2023-03-13T08:34:32.000Z","size":954,"stargazers_count":10,"open_issues_count":6,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-15T14:00:08.782Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CN-TU.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-23T13:18:13.000Z","updated_at":"2024-11-23T04:13:58.000Z","dependencies_parsed_at":"2024-06-19T03:22:16.227Z","dependency_job_id":null,"html_url":"https://github.com/CN-TU/go-flows","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CN-TU/go-flows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CN-TU","download_url":"https://codeload.github.com/CN-TU/go-flows/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":274403205,"owners_count":25278413,"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","status":"online","status_checked_at":"2025-09-10T02:00:12.551Z","response_time":83,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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"}},"owner":{"login":"CN-TU","name":"CN Group, Institute of Telecommunications, TU Wien","uuid":"29891141","kind":"organization","description":"Communication Networks Group, TU Wien","email":null,"website":null,"location":"Vienna, Austria","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/29891141?v=4","repositories_count":16,"last_synced_at":"2023-03-03T01:08:10.774Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/CN-TU","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-13T14:34:20.529Z","updated_at":"2023-03-03T01:08:10.789Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CN-TU","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CN-TU/repositories"},"packages":[{"id":3644579,"name":"github.com/CN-TU/go-flows","ecosystem":"go","description":"This contains a highly customizable general-purpose flow exporter.\n\nFor building either \"go build\", \"go install\", or the program provided in go-flows-build can be used.\nThe latter allows for customizing builtin modules and can help with building modules as plugins or combined binaries.\n\nThis flow exporter can convert network packets into flows, extract features, and export those via\nvarious file formats.\n\nIn general the flow exporter reads the feature definitions (i.e. a description of which features\nto extract, and the flow key), and builds an execution graph (this can be viewed with the option\ncallgraph) from this definition.\n\nPackets are then read from a source and processed in the following pipeline:\n\n() parts in the pipeline are fixed, [] parts can be configured via the specification, {} can be configured\nvia the specification and provided via modules, and everything else can be provided from a module and\nconfigured from the command line.\n\nsource is a packet source, which must provide single packets as []byte sequences and metadata like\ncapture time, and dropped/filtered packets. The []byte-buffer can be reused for the next packet.\nFor examples look at modules/sources.\n\nfilter is a packet filter, which must return true for a given packet if it should be filtered out.\nFor examples look at modules/filters.\n\nparse is a fixed step that parses the packet with gopacket.\n\nlabel is an optional step, that can provide an arbitrary label for every packet. For examples look at\nmodules/labels.\n\nkey is a fixed step that calculates the flow key. Key parameters can be configured via the specification.\n\ntable, flow, record are fixed steps that are described in more detail in the flows package.\n\nmerge merges the output from every table into one record stream.\n\nThe feature step calculates the actual feature values. Features can be provided via modules, and the\nselection of which features to calculate must be provided via the specification. Features are described\nin more detail in the flows package.\n\nIf a flow ends (e.g. because of timeout, or tcp-rst) it gets exported via the exported, which must\nbe provided as a module and configured via the command line. For examples look at modules/exporters.\n\nThe whole pipeline is executed concurrently with the following four subpipelines running concurrently:\n\nThe \"table\"-pipeline exists n times, where n can be configured on the command line. Packets are divided\nonto the different \"table\"-pipelines according to flow-key.\n\nWARNING: Due to this concurrent processing flow output is neither order nor deterministic (without sorting)!\nTo ensure deterministic output, flow output can be order by start time, stop time (default), or export time.\n\nSpecification files are JSON files based on the NTARC format (https://nta-meta-analysis.readthedocs.io/en/latest/).\nOnly version 2 files can be used. It is also possible to use a simpler format, if a paper specification\nis not needed.\n\nSimpleformat specification:\n\nV2-formated file:\n\nUnlike in the NTARC specification active_timeout and idle_timeout MUST be specified (there are no defaults).\nIf bidirectional is true, every flow contains packets from both directions.\n\nkey features give a list of features, which are used to compute a flow key. features is a formated list\nof features to export. This list can also contain combinations of features and operations\n(https://nta-meta-analysis.readthedocs.io/en/latest/features.html).\nOnly single pass operations can ever be supported due to design restrictions in the flow exporter.\n\nIn addition to the features specified in the nta-meta-analysis, two addional types of features are present:\nFilter features which can exclude packets from a whole flow, and control features which can change flow\nbehaviour like exporting the flow before the end, restarting the flow, or discarding the flow.\n_per_packet allows exporting one flow per packet. If _allow_zero is true, then packets are accepted, where\none of the parts of the flow key would be zero (e.g. non-IP packets for flow keys that contain IP-Addresses).\nIf _expire_TCP is set to false, no TCP-based expiry is carried out (e.g. RST packets). TCP expiry is\nonly carried out if at least the five-tuple is part of the flow key.\n\nA list of supported features can be queried with \"./go-flows features\"\n\nThe examples directory contains several example flow specifications that can be used. The general\nsyntax on the command line is \"go-flows run \u003ccommands\u003e\" where \u003ccommands\u003e is a list of \"\u003cverb\u003e \u003cwhich\u003e\n[options] [--]\" sequences. \u003cverb\u003e can be one of features, export, source filter, or label, and\n\u003cwhich\u003e is the actual module. The options can be queried from the help of the different modules\n(e.g. go-flows \u003cverb\u003es \u003cwhich\u003e; e.g. go-flows exporters ipfix).\n\nExample:\n\nThe following list describes all the different things contained in the subdirectories.\n\nFeatures most follow the conventions in https://nta-meta-analysis.readthedocs.io/en/latest/features.html,\nwhich states that names must follow the ipfix iana assignments (https://www.iana.org/assignments/ipfix/ipfix.xhtml),\nor start with an _ for common features or __ for uncommon ones. Feature names must be camelCase. The flow exporter\nhas the full list of ipfix iana assignments already builtin which means that for these features one needs to only\nspecifiy the name - all type information is automatically added by the flow extractor.\n\nFor implementing features most of the time flows.BaseFeature is a good start point. Features need to override\nthe needed methods:\n\nStart(*EventContext) gets called when a flow starts. Do cleanup here (features might be reused!). MUST call flows.BaseFeature.Start from this function!\n\nEvent(interface{}, *EventContext, interface{}) gets called for every packet belonging to the current flow\n\nStop(FlowEndReason, *EventContext) gets called when a flow finishes (before export)\n\nSetValue(new interface{}, when *EventContext, self interface{}) Call this one for setting a value. It stores the new value and forwards it to all dependent features.\n\nLess commonly used functions\n\nSee also documentation of subpackage flows for more details about which base to choose.\n\nA simple example is the protocolIdentifier:\n\nThis feature doesn't need a Start or Stop (since both functions don't provide a packet).\nFor every packet, it checks, if the protocolIdentifier has already been set, and if it hasn't been, it sets a new value.\nThe new value provided to Event will always be a packet.Buffer for features that expect a raw packet.\nFor other features, this will be the actual value emitted from other features. E.g. for the specification\n\nthe minfeature will receive the uint8 emitted by this feature.\n\nThe final component missing from the code is the feature registration. This has to be done in init with one of the\nRegister* functions from the flows packet. For the protocolIdentifier this looks like the following:\n\nSince protocolIdentifier is one of the iana assigned ipfix features, RegisterStandardFeature can be used, which automatically adds the rest of the\nipfix information element specification. The second argument is what this feature implementation returns which in this case is a single value per\nflow - a FlowFeature. The third argument must be a function that returns a new feature instance. The last argument specifies the input to this\nfeatures, which is a raw packet. The flows package contains a list of implemented types and Register functions.\n\nFor more examples have a look at the provided features.\n\nCommon part of sources/filters/labels/exporters\n\nSources, filters, labels, and exportes must register themselves with the matching Register* function:\n\nwhere a name and a short description have to be provideded. The helpX function gets called if the help\nfor this module is invoked and must write the help to os.Stderr. The newX function must parse the given\narguments and return a new X. This function must have the following signature:\n\nname can be a provided name for the id, but can be empty. opts holds the parameters from a JSON specification or\nutil.UseStringOption if args need to be parsed. args holds the rest of the arguments in case it is a command line\ninvocation. Needed arguments must be parsed from this array and the remaining ones returned (arguments).\nIf successful the created module must be returned as ret - otherwise an error. This function must only parse arguments\nand prepare the state of the module. Opening files etc. must happen in Init()\n\nAll modules must fulfill the util.Module interface which contains an Init and an ID function. ID must return a string\nfor the callgraph representation (most of the time a combination of modulename|parameter). Init will be called\nduring intialization. Side effects like creating files must happen in Init and not during the new function!\n\nExamples of the different modules can be found in the modules directory.\n\nSources must implement the packet.Source interface:\n\nReadPacket gets called for reading the next packet. This function must return the layer type, the raw data of a single packet,\ncapture information, how many packets have been skipped and filtered since the last invocation, or an error.\n\nStop might be called asynchronously (be careful with races) to stop an ongoing capture. After or during this happening ReadPacket must\nreturn io.EOF as error. This function is only called to stop the flow exporter early (e.g. ctrl+c).\n\ndata is not kept around by the flow exported which means, the source an reuse the same data buffer for every ReadPacket.\n\nFilters must implement the packet.Filter interface:\n\nMatches will be called for every packet with the capture info and the raw data as argument.\nIf this function returns false, then the current packet gets filtered out (i.e. processing of this packet stops and the next one is used).\n\nDon't hold on to data! This will be reused for the next packet.\n\nLabels must implement the packet.Label interface:\n\nThis function can return an arbitrary value as label for the packet (can also be nil for no label). If the label source is empty io.EOF must be returned.\n\nExporters must implement the flow.Exporter interface:\n\nFields, Export, Finish will never be called concurrently, are expected to be blocking until finished,\nand, therefore, don't need to take care about synchronization.\n\nThe Fields function gets called before processing starts and provides a list of feature names that\nwill be exported (e.g. the csv exporter uses this to create the csv header).\n\nExport gets called for every record that must be exported. Arguments are a template for this list of features,\nthe actual features values, and an export time.\n\nFinish will be called after all packets and flows have been processed. This function must flush data and wait for\nthis process to finish.","homepage":"https://github.com/CN-TU/go-flows","licenses":"LGPL-3.0","normalized_licenses":["LGPL-3.0"],"repository_url":"https://github.com/CN-TU/go-flows","keywords_array":[],"namespace":"github.com/CN-TU","versions_count":2,"first_release_published_at":"2022-02-19T18:46:35.000Z","latest_release_published_at":"2023-03-13T08:34:32.000Z","latest_release_number":"v0.0.0-20230313083432-9f5628c12456","last_synced_at":"2025-08-15T14:00:10.335Z","created_at":"2022-04-11T09:10:59.019Z","updated_at":"2025-08-15T20:53:48.764Z","registry_url":"https://pkg.go.dev/github.com/CN-TU/go-flows","install_command":"go get github.com/CN-TU/go-flows","documentation_url":"https://pkg.go.dev/github.com/CN-TU/go-flows#section-documentation","metadata":{},"repo_metadata":{"id":43717288,"uuid":"118612739","full_name":"CN-TU/go-flows","owner":"CN-TU","description":"Flow Exporter implementation in go. CN contact: GV","archived":false,"fork":false,"pushed_at":"2023-03-13T08:34:32.000Z","size":954,"stargazers_count":10,"open_issues_count":6,"forks_count":6,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-15T14:00:08.782Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"lgpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/CN-TU.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-01-23T13:18:13.000Z","updated_at":"2024-11-23T04:13:58.000Z","dependencies_parsed_at":"2024-06-19T03:22:16.227Z","dependency_job_id":null,"html_url":"https://github.com/CN-TU/go-flows","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/CN-TU/go-flows","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CN-TU","download_url":"https://codeload.github.com/CN-TU/go-flows/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":270630033,"owners_count":24619370,"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","status":"online","status_checked_at":"2025-08-15T02:00:12.559Z","response_time":110,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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"},"owner_record":{"login":"CN-TU","name":"CN Group, Institute of Telecommunications, TU Wien","uuid":"29891141","kind":"organization","description":"Communication Networks Group, TU Wien","email":null,"website":null,"location":"Vienna, Austria","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/29891141?v=4","repositories_count":16,"last_synced_at":"2023-03-03T01:08:10.774Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/CN-TU","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-13T14:34:20.529Z","updated_at":"2023-03-03T01:08:10.789Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CN-TU","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/CN-TU/repositories"},"tags":[]},"repo_metadata_updated_at":"2025-08-15T20:53:48.764Z","dependent_packages_count":5,"downloads":null,"downloads_period":null,"dependent_repos_count":1,"rankings":{"downloads":null,"dependent_repos_count":4.742177835440364,"dependent_packages_count":2.501684619175492,"stargazers_count":11.68904444377395,"forks_count":8.17977659229805,"docker_downloads_count":null,"average":6.778170872671963},"purl":"pkg:golang/github.com/%21c%21n-%21t%21u/go-flows","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/go/github.com/CN-TU/go-flows","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/go/github.com/CN-TU/go-flows","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/go/github.com/CN-TU/go-flows/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":{"last_synced_at":"2025-08-15T14:37:13.427Z","issues_count":14,"pull_requests_count":5,"avg_time_to_close_issue":3923165.1,"avg_time_to_close_pull_request":24471702.0,"issues_closed_count":10,"pull_requests_closed_count":5,"pull_request_authors_count":3,"issue_authors_count":4,"avg_comments_per_issue":1.5714285714285714,"avg_comments_per_pull_request":1.2,"merged_pull_requests_count":3,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":78624.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":4.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/issues","maintainers":[{"login":"notti","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/notti"}],"active_maintainers":[]},"versions_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FCN-TU%2Fgo-flows/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FCN-TU%2Fgo-flows/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FCN-TU%2Fgo-flows/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages/github.com%2FCN-TU%2Fgo-flows/related_packages","maintainers":[],"registry":{"name":"proxy.golang.org","url":"https://proxy.golang.org","ecosystem":"go","default":true,"packages_count":1954776,"maintainers_count":0,"namespaces_count":741920,"keywords_count":109374,"github":"golang","metadata":{"funded_packages_count":49379},"icon_url":"https://github.com/golang.png","created_at":"2022-04-04T15:19:22.939Z","updated_at":"2025-09-09T06:45:13.065Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/proxy.golang.org/namespaces"}}],"commits":{"message":"Repository syncing started."},"issues_stats":{"full_name":"CN-TU/go-flows","html_url":"https://github.com/CN-TU/go-flows","last_synced_at":"2025-08-15T14:37:13.427Z","status":"error","issues_count":14,"pull_requests_count":5,"avg_time_to_close_issue":3923165.1,"avg_time_to_close_pull_request":24471702.0,"issues_closed_count":10,"pull_requests_closed_count":5,"pull_request_authors_count":3,"issue_authors_count":4,"avg_comments_per_issue":1.5714285714285714,"avg_comments_per_pull_request":1.2,"merged_pull_requests_count":3,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":1,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":78624.0,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":1,"past_year_pull_request_authors_count":1,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":0.0,"past_year_avg_comments_per_pull_request":4.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2023-05-17T22:34:52.317Z","updated_at":"2025-09-02T08:23:02.003Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/CN-TU%2Fgo-flows/issues","issue_labels_count":{"enhancement":4,"help wanted":1,"bug":1},"pull_request_labels_count":{},"issue_author_associations_count":{"CONTRIBUTOR":11,"NONE":3,"COLLABORATOR":2},"pull_request_author_associations_count":{"CONTRIBUTOR":4,"NONE":1},"issue_authors":{"dcferreira":9,"notti":2,"fm94":2,"allanespindola":1,"reumar":1,"Wistm":1},"pull_request_authors":{"fm94":3,"chtisgit":1,"dcferreira":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-10T00:00:25.260Z","repositories_count":10197700,"issues_count":32209000,"pull_requests_count":101697271,"authors_count":10742056,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{},"past_year_issue_authors":{"Wistm":1},"past_year_pull_request_authors":{},"maintainers":[{"login":"notti","count":2,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/notti"}],"active_maintainers":[]},"events":{"total":{"WatchEvent":1},"last_year":{"WatchEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"go","filepath":"go.mod","sha":null,"kind":"manifest","created_at":"2022-09-14T15:51:59.672Z","updated_at":"2022-09-14T15:51:59.672Z","repository_link":"https://github.com/CN-TU/go-flows/blob/master/go.mod","dependencies":[{"id":4837756429,"package_name":"github.com/CN-TU/go-ipfix","ecosystem":"go","requirements":"v0.0.0-20190607191022-b148a3a1167d","direct":true,"kind":"runtime","optional":false},{"id":4837756430,"package_name":"github.com/google/gopacket","ecosystem":"go","requirements":"v1.1.17","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"go","filepath":"go.sum","sha":null,"kind":"lockfile","created_at":"2022-09-14T15:51:59.806Z","updated_at":"2022-09-14T15:51:59.806Z","repository_link":"https://github.com/CN-TU/go-flows/blob/master/go.sum","dependencies":[{"id":4837756549,"package_name":"github.com/CN-TU/go-ipfix","ecosystem":"go","requirements":"v0.0.0-20190607191022-b148a3a1167d","direct":false,"kind":"runtime","optional":false},{"id":4837756550,"package_name":"github.com/google/gopacket","ecosystem":"go","requirements":"v1.1.17","direct":false,"kind":"runtime","optional":false},{"id":4837756551,"package_name":"golang.org/x/crypto","ecosystem":"go","requirements":"v0.0.0-20190308221718-c2843e01d9a2","direct":false,"kind":"runtime","optional":false},{"id":4837756552,"package_name":"golang.org/x/net","ecosystem":"go","requirements":"v0.0.0-20190404232315-eb5bcb51f2a3","direct":false,"kind":"runtime","optional":false},{"id":4837756553,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190215142949-d0b11bdaac8a","direct":false,"kind":"runtime","optional":false},{"id":4837756554,"package_name":"golang.org/x/sys","ecosystem":"go","requirements":"v0.0.0-20190405154228-4b34438f7a67","direct":false,"kind":"runtime","optional":false},{"id":4837756555,"package_name":"golang.org/x/text","ecosystem":"go","requirements":"v0.3.0","direct":false,"kind":"runtime","optional":false}]}],"score":null,"created_at":"2025-09-09T02:29:26.225Z","updated_at":"2025-10-07T08:41:57.978Z","avatar_url":"https://github.com/CN-TU.png","language":"Go","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/186927","html_url":"https://science.ecosyste.ms/projects/186927"}