manifold.mleku.dev

module
v0.0.0-...-0e9a772 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 1, 2025 License: CC0-1.0

README

manifold

[man-uh-fohld] Phonetic (Standard)

adjective

  1. of many kinds; numerous and varied.

manifold duties.

Synonyms: multitudinous, various

Antonyms: single, simple

  1. having numerous different parts, elements, features, forms, etc..

a manifold program for social reform.

Synonyms: multifarious, divers, varied

  1. using, functioning with, or operating several similar or identical devices at the same time.

  2. (of paper business forms) made up of a number of sheets interleaved with carbon paper.

  3. being such or so designated for many reasons.

a manifold enemy.

noun

  1. something having many different parts or features.

  2. a copy or facsimile, as of something written, such as is made by manifolding.

  3. any thin, inexpensive paper for making carbon copies on a typewriter.

  4. Machinery. a chamber having several outlets through which a liquid or gas is distributed or gathered.

  5. Philosophy. (in Kantian epistemology) the totality of discrete items of experience as presented to the mind; the constituents of a sensory experience.

  6. Mathematics. a topological space that is connected and locally Euclidean.

verb (used with object)

to make copies of, as with carbon paper.

from dictionary.com

Manifold is an event bus type protocol that combines post-office/repository access with publish/subscribe distribution of messages.

The name relates to the way that it is designed to be so simple that it can perform many different kinds of messaging and data distribution, replication and storage for any purpose. specifically it's goal is to function in place of standard web services, as well as enabling the necessary real-time push of new data across the network, while allowing both active and passive methods of synchronisation between nodes in the network.

It is designed to be as simple as possible, for example, using a simple sentinel based encoding for events and filters that only require escaping newlines and backslashes, instead of a complex and varied escape scheme like found with JSON.

This is important not only for easy implementation but also because cryptographic signatures are only valid on an exact string of bytes, and Manifold events are identified by their SHA256 hash.

The ordering of fields is rigid and requires exact ordering, and instead of adding a "kind" to specify the types, the tags serve the purpose of marking the content encoding, purpose, application type, as well as any other use such as event and user pubkey references for threaded discussions.

Directories

Path Synopsis
Package atomic provides simple wrappers around numerics to enforce atomic access.
Package atomic provides simple wrappers around numerics to enforce atomic access.
internal/gen-atomicint command
gen-atomicint generates an atomic wrapper around an integer type.
gen-atomicint generates an atomic wrapper around an integer type.
internal/gen-atomicwrapper command
gen-atomicwrapper generates wrapper types around other atomic types.
gen-atomicwrapper generates wrapper types around other atomic types.
Package chk is a convenience shortcut to use shorter names to access the lol.Logger.
Package chk is a convenience shortcut to use shorter names to access the lol.Logger.
Package context is a set of shorter names for the very stuttery context library.
Package context is a set of shorter names for the very stuttery context library.
ec
Package btcec implements support for the elliptic curves needed for bitcoin.
Package btcec implements support for the elliptic curves needed for bitcoin.
base58
Package base58 provides an API for working with modified base58 and Base58Check encodings.
Package base58 provides an API for working with modified base58 and Base58Check encodings.
bech32
Package bech32 provides a Go implementation of the bech32 format specified in BIP 173.
Package bech32 provides a Go implementation of the bech32 format specified in BIP 173.
chaincfg
Package chaincfg provides basic parameters for bitcoin chain and testnets.
Package chaincfg provides basic parameters for bitcoin chain and testnets.
chainhash
Package chainhash provides abstracted hash functionality.
Package chainhash provides abstracted hash functionality.
ecdsa
Package ecdsa provides secp256k1-optimized ECDSA signing and verification.
Package ecdsa provides secp256k1-optimized ECDSA signing and verification.
musig2
Package musig2 provides an implementation of the musig2 protocol for bitcoin.
Package musig2 provides an implementation of the musig2 protocol for bitcoin.
schnorr
Package schnorr provides custom Schnorr signing and verification via secp256k1.
Package schnorr provides custom Schnorr signing and verification via secp256k1.
secp256k1
Package secp256k1 implements optimized secp256k1 elliptic curve operations in pure Go.
Package secp256k1 implements optimized secp256k1 elliptic curve operations in pure Go.
secp256k1/precomps command
Package main provides a generator for precomputed constants for secp256k1 signatures.
Package main provides a generator for precomputed constants for secp256k1 signatures.
taproot
Package taproot provides a collection of tools for encoding bitcoin taproot addresses.
Package taproot provides a collection of tools for encoding bitcoin taproot addresses.
wire
Package wire contains a set of data structure definitions for the bitcoin blockchain.
Package wire contains a set of data structure definitions for the bitcoin blockchain.
Package errorf is a convenience shortcut to use shorter names to access the lol.Logger.
Package errorf is a convenience shortcut to use shorter names to access the lol.Logger.
Package hex is a set of aliases and helpers for using the templexxx SIMD hex encoder.
Package hex is a set of aliases and helpers for using the templexxx SIMD hex encoder.
Package interrupt is a library for providing handling for Ctrl-C/Interrupt handling and triggering callbacks for such things as closing files, flushing buffers, and other elements of graceful shutdowns.
Package interrupt is a library for providing handling for Ctrl-C/Interrupt handling and triggering callbacks for such things as closing files, flushing buffers, and other elements of graceful shutdowns.
Package ints is an optimised encoder for decimal numbers in ASCII format, that simplifies and accelerates encoding and decoding decimal strings.
Package ints is an optimised encoder for decimal numbers in ASCII format, that simplifies and accelerates encoding and decoding decimal strings.
gen command
Package main is a generator for the base10000 (4 digit) encoding of the ints library.
Package main is a generator for the base10000 (4 digit) encoding of the ints library.
Package log is a convenience shortcut to use shorter names to access the lol.Logger.
Package log is a convenience shortcut to use shorter names to access the lol.Logger.
Package lol (log of location) is a simple logging library that prints a high precision unix timestamp and the source location of a log print to make tracing errors simpler.
Package lol (log of location) is a simple logging library that prints a high precision unix timestamp and the source location of a log print to make tracing errors simpler.
Package p256k is a signer interface that (by default) uses the bitcoin/libsecp256k1 library for fast signature creation and verification of the BIP-340 nostr X-only signatures and public keys, and ECDH.
Package p256k is a signer interface that (by default) uses the bitcoin/libsecp256k1 library for fast signature creation and verification of the BIP-340 nostr X-only signatures and public keys, and ECDH.
btcec
Package btcec implements the signer.I interface for signatures and ECDH with nostr.
Package btcec implements the signer.I interface for signatures and ECDH with nostr.
Package publisher is a singleton package that keeps track of subscriptions in both websockets and http SSE, including managing the authentication state of a connection.
Package publisher is a singleton package that keeps track of subscriptions in both websockets and http SSE, including managing the authentication state of a connection.
Package sha256 is taken from github.com/minio/sha256-simd, implementing, where available, an accelerated SIMD implementation of sha256.
Package sha256 is taken from github.com/minio/sha256-simd, implementing, where available, an accelerated SIMD implementation of sha256.
Package signer defines interfaces for management of signatures, used to abstract the signature algorithm from the usage.
Package signer defines interfaces for management of signatures, used to abstract the signature algorithm from the usage.
Package text is a reader and writer that processes received raw text, and escapes it using the simple rule that messages are separated by line breaks, and so only linebreaks in the text need to be escaped.
Package text is a reader and writer that processes received raw text, and escapes it using the simple rule that messages are separated by line breaks, and so only linebreaks in the text need to be escaped.
Package units is a convenient set of names designating data sizes in bytes using common ISO names (base 10).
Package units is a convenient set of names designating data sizes in bytes using common ISO names (base 10).
Package varint is a variable integer encoding that works in reverse compared to the stdlib binary Varint.
Package varint is a variable integer encoding that works in reverse compared to the stdlib binary Varint.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL