.. _nuts-node-development: Nuts node development ##################### Requirements ************ .. marker-for-readme .. |gover| image:: https://img.shields.io/github/go-mod/go-version/nuts-foundation/nuts-node :alt: GitHub go.mod Go version |gover| or higher is required. Building ******** Just use ``go build``. ES256 Koblitz support ===================== To enable ES256K (Koblitz) support, you need to build with the ``jwx_es256k`` tag: .. code-block:: shell go build -tags jwx_es256k Building for exotic environments ================================ You can build and run the Nuts node on more exotic environments, e.g. Raspberry Pis: * 32-bit ARMv6 (Raspberry Pi Zero): ``env GOOS=linux GOARCH=arm GOARM=6 go build`` Running tests ************* Tests can be run by executing .. code-block:: shell go test ./... Code Generation *************** Code generation is used for generating mocks, OpenAPI client- and servers, and gRPC services. Make sure that ``GOPATH/bin`` is available on ``PATH`` and that the dependencies are installed Install ``protoc``: | MacOS: ``brew install protobuf`` | Linux: ``apt install -y protobuf-compiler`` Install Go tools: .. code-block:: shell make install-tools Generating code: To regenerate all code run the ``run-generators`` target from the makefile or use one of the following for a specific group ================ ======================= Group Command ================ ======================= Mocks ``make gen-mocks`` OpenApi ``make gen-api`` Protobuf + gRCP ``make gen-protobuf`` All ``make run-generators`` ================ ======================= README ====== The readme is auto-generated from a template and uses the documentation to fill in the blanks. .. code-block:: shell make gen-readme Documentation ============= The documentation can be build by running the following command from the ``/docs`` directory: .. code-block:: shell make html