The Neon class libraries organizes classes in several namespaces. Most classes are defined in Neon.* namespaces but we do define some extension methods within non-Neon namespaces for ease of use.
This namespace extends the standard NATS messaging types.
This namespace defines the Neon .NET client for the Uber Cadence workflow service.
This namespace includes Cassandra related extensions and utilities.
This namespace defines a handful of probably archaic custom collection classes.
This namespace includes generally useful types that are consumed by the remaining neonLIBRARY libraries and can also be useful for end-user applications.
This namespace Includes some cryptographic helper methods and extensuions making operations like MD5 or SHA-* hashing easier as well as the NeonVault class which can be used to persist encrypted data (inspired by Ansible Vault).
This namespace includes types for reading and writing Comma Separated Value (CSV) formatted data.
This namespace defines some data converters as well as types and interfaces supporting ModelGen generated data types.
The Neon.Deployment library includes utility classes for managing deployments for CI/CD.
This namespace includes the common logging code used throughout Neon applications and libraries.
This namespace includes some handy file and stream related types.
This namespace includes the types used to generate data models from interface definitions. These models can be built to support round-tripping data without loss as well as optionally adding INotifyPropertyChanged related code for UX binding.
You can use these classes to integrate model generation into your own tooling or use the Neon.ModelGenerator package which includes the pre-built neon-modelgen command line tool. You'll add a reference to this package to your project and then add a custom build target to invoke neon-modelgen.
This namespace includes Postgres related extensions and utilities.
This namespace includes simple types that can be used to mitigate transient errors.
This namespace includes types that implement much of the boilerplate code for a service application suitable for deploying as a Docker container, a Kubernetes pod, or just a stand alone service.
This namespace includes the LinuxSshProxyTMetadata, LinuxSshProxy and related classes that wrap and extend the base SSH.NET library clients with additional support for managing remote Linux machines via SSH including executing commands, scripts, uploading/downloading files, and performing idempotent operations. Remote command executions and their results can also be logged locally via a TextWriter (using a completely non-standard but still useful logging format).
The other major type is CommandBundle. Command bundles provide a way to upload a script or executable to a temporary working directory and then run the script or program in the context of the working directory so the script or program will have access to the files.Command bundle executions can also tolerate transient network disconnections.
This namespace includes a handful of types that implement the async equivalent of primitives like auto/manual reset events, mutexes, reader/writer locks, and timers. This also includes SyncContext which can be used to easily clear the synchronization context within API implementations.
This namespace defines the Neon .NET client for the Uber Temporal workflow service.
This namespace includes some time related types.
This namespace defines low-level Windows P/Invoke mappings as well as a simply class that can execute PowerShell commands.
This namespace includes unit test related helper classes include Xunit test fixtures for ASP.NET, Docker Containers, Docker Swarm, Environment variables, DNS (local hosts file), Kube services, NATS/STAN message queues.
This namespace includes the Cadence workflow Xunit test fixture.
This namespace includes a Couchbase Xunit test fixture.
This namespace includes the Temporal workflow Xunit test fixture.
This namespace includes the YugaByte database Xunit test fixture.
This namespace includes the YugaByte related utilities and extensions.
This namespace extends the standard NATS streaming client.
The System namespace contains fundamental classes and base classes that define commonly-used value and reference data types, events and event handlers, interfaces, attributes, and processing exceptions.
The System.Collections.Generic namespace contains interfaces and classes that define generic collections, which allow users to create strongly typed collections that provide better type safety and performance than non-generic strongly typed collections.
The System.Diagnostics.Contracts namespace contains static classes for representing program contracts such as preconditions, postconditions, and invariants.
The System.IO namespace contains types that allow reading and writing to files and data streams, and types that provide basic file and directory support.
The System.Net.Http namespace provides a programming interface for modern HTTP applications.
The System.Reflection namespace contains types that retrieve information about assemblies, modules, members, parameters, and other entities in managed code by examining their metadata. These types also can be used to manipulate instances of loaded types, for example to hook up events or to invoke methods. To dynamically create types, use the System.Reflection.Emit namespace.