{"id":18032073,"url":"https://github.com/piotrkowalczuk/ntypes","last_synced_at":"2025-10-06T09:30:45.580Z","repository":{"id":56662675,"uuid":"58122474","full_name":"piotrkowalczuk/ntypes","owner":"piotrkowalczuk","description":"Set of types that helps to build complex protobuf messages that contains optional properties.","archived":false,"fork":false,"pushed_at":"2020-10-16T04:51:44.000Z","size":129,"stargazers_count":6,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2024-04-14T18:06:24.835Z","etag":null,"topics":["complex-protobuf-messages","golang","json","null","protobuf","python","sql"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/piotrkowalczuk.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-05-05T10:12:35.000Z","updated_at":"2024-04-14T18:06:24.835Z","dependencies_parsed_at":"2022-08-15T22:50:38.847Z","dependency_job_id":null,"html_url":"https://github.com/piotrkowalczuk/ntypes","commit_stats":null,"previous_names":[],"tags_count":34,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrkowalczuk%2Fntypes","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrkowalczuk%2Fntypes/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrkowalczuk%2Fntypes/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/piotrkowalczuk%2Fntypes/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/piotrkowalczuk","download_url":"https://codeload.github.com/piotrkowalczuk/ntypes/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":235515428,"owners_count":19002481,"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":["complex-protobuf-messages","golang","json","null","protobuf","python","sql"],"created_at":"2024-10-30T10:12:10.094Z","updated_at":"2025-10-06T09:30:40.310Z","avatar_url":"https://github.com/piotrkowalczuk.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ntypes [![GoDoc](https://godoc.org/github.com/piotrkowalczuk/ntypes?status.svg)](http://godoc.org/github.com/piotrkowalczuk/ntypes)\n\n[![CircleCI](https://circleci.com/gh/piotrkowalczuk/ntypes/tree/master.svg?style=svg)](https://circleci.com/gh/piotrkowalczuk/ntypes/tree/master)\n[![Code Climate](https://codeclimate.com/github/piotrkowalczuk/ntypes/badges/gpa.svg)](https://codeclimate.com/github/piotrkowalczuk/ntypes)\n[![Go Report Card](https://goreportcard.com/badge/github.com/piotrkowalczuk/ntypes)](https://goreportcard.com/report/github.com/piotrkowalczuk/ntypes)\n[![pypi](https://img.shields.io/pypi/v/protobuf-ntypes.svg)](https://pypi.python.org/pypi/protobuf-ntypes)\n[![Download](https://img.shields.io/bintray/v/piotrkowalczuk/maven/ntypes.svg)](https://bintray.com/piotrkowalczuk/maven/ntypes/_latestVersion)\n\nPackage provides set of types that helps to build complex protobuf messages that contains optional properties. \nAPI can be considered as stable.\n\n## Types\n\n### Basic \n\n* [ntypes.Bytes](https://godoc.org/github.com/piotrkowalczuk/ntypes#Bytes)\n* [ntypes.String](https://godoc.org/github.com/piotrkowalczuk/ntypes#String)\n* [ntypes.Bool](https://godoc.org/github.com/piotrkowalczuk/ntypes#Bool)\n* [ntypes.Int32](https://godoc.org/github.com/piotrkowalczuk/ntypes#Int32)\n* [ntypes.Int64](https://godoc.org/github.com/piotrkowalczuk/ntypes#Int64)\n* [ntypes.Uint32](https://godoc.org/github.com/piotrkowalczuk/ntypes#Uint32)\n* [ntypes.Uint64](https://godoc.org/github.com/piotrkowalczuk/ntypes#Uint64)\n* [ntypes.Float32](https://godoc.org/github.com/piotrkowalczuk/ntypes#Float32)\n* [ntypes.Float64](https://godoc.org/github.com/piotrkowalczuk/ntypes#Float64)\n\n### Arrays\n\n* [ntypes.BytesArray](https://godoc.org/github.com/piotrkowalczuk/ntypes#BytesArray)\n* [ntypes.StringArray](https://godoc.org/github.com/piotrkowalczuk/ntypes#StringArray)\n* [ntypes.BoolArray](https://godoc.org/github.com/piotrkowalczuk/ntypes#BoolArray)\n* [ntypes.Int32Array](https://godoc.org/github.com/piotrkowalczuk/ntypes#Int32Array)\n* [ntypes.Int64Array](https://godoc.org/github.com/piotrkowalczuk/ntypes#Int64Array)\n* [ntypes.Uint32Array](https://godoc.org/github.com/piotrkowalczuk/ntypes#Uint32Array)\n* [ntypes.Uint64Array](https://godoc.org/github.com/piotrkowalczuk/ntypes#Uint64Array)\n* [ntypes.Float32Array](https://godoc.org/github.com/piotrkowalczuk/ntypes#Float32Array)\n* [ntypes.Float64Array](https://godoc.org/github.com/piotrkowalczuk/ntypes#Float64Array)\n\nArrays support is not an SQL standard. Extra import needs to be added to make it working with [postgres driver](https://github.com/lib/pq):\n \n ```\n import _ \"github.com/piotrkowalczuk/ntypes/ntypespq\"\n ```\n\n## Interfaces\n\nSome type implements set of interfaces:\n\n* [driver.Valuer](https://golang.org/pkg/database/sql/driver/#Valuer) excluding Uint64 and some arrays\n* [proto.Message](https://godoc.org/github.com/golang/protobuf/proto#Message)\n* [sql.Scanner](https://golang.org/pkg/database/sql/#Scanner) excluding Uint64 and some arrays\n* [json.Marshaler](https://golang.org/pkg/encoding/json/#Marshaler)\n* [json.Unmarshaler](https://golang.org/pkg/encoding/json/#Unmarshaler)\n\n## Helpers\n\n* [ntypes.True](https://godoc.org/github.com/piotrkowalczuk/ntypes#True)\n* [ntypes.False](https://godoc.org/github.com/piotrkowalczuk/ntypes#False)\n\nBesides that each type implements `func \u003cType\u003eOr(\u003cbuiltin\u003e) \u003cbuiltin\u003e {}` method. \nIt returns given argument if receiver is not valid or is nil. \nFor example:\n[ntypes.Bool.BoolOr](https://godoc.org/github.com/piotrkowalczuk/ntypes#Bool.BoolOr).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiotrkowalczuk%2Fntypes","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpiotrkowalczuk%2Fntypes","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpiotrkowalczuk%2Fntypes/lists"}