Flatend Versions Save

Quickly build microservices using p2p networking in NodeJS/Go.

v0.0.8

3 years ago

Changelog

2f70a2d provider, node, net, io, sdk/node, examples/go/broadcast, examples/go/clock: wrap around io.PipeReader and io.PipeWriter to emit io.EOF instead of io.ErrClosedPipe, remove BindFunc in favor of strings representative of tcp addresses to listen to peers from, update readme with change in go sdk, add ProvidersFor(services ...string) to grab all available providers for a set of services in Go and NodeJS, add chatroom broadcast example for chatting across nodes using ProvidersFor() 659d906 v0.0.8

v0.0.7

3 years ago

Changelog

cd1c0c9 kademlia, monte, sdk/node: fix routing table bias iterating towards left of address space, update monte and kademlia pkgs 3739fdd sdk/node: update readme in node folder 229e01f v0.0.7

v0.0.6

3 years ago

Changelog

f4c6578 sdk/node, net, node, readme: create tests using mocha and chai, recode away all streams to use async generator instead to adhere to backpressure support, add support for sending messages to other nodes and listening for other nodes in nodejs, expose peer id in Context for both nodejs and go, update readme with new doc info d80f199 sdk/node: remove compiled output from tests 0e244a2 v0.0.6

v0.0.5

3 years ago

Changelog

3f7d06e cmd/flatend, flathttp: set keep alives disabled upon shutdown, and add graceful shutdown support feec97f sdk/node/monte: do not downcast bigint to number via post-increment op 52fec61 sdk/node: do not use bigint literals and downgrade target to es2015 2f4e1b5 v0.0.5

v0.0.4

3 years ago

Changelog

ae4afbc sdk/node: manually copy readme for npm pkg 6cff62b v0.0.4

v0.0.2

3 years ago

Changelog

c04607d cmd/flatend, examples, node, packet, provider: add kademlia routing table and peer discovery support a795271 cmd/flatend, flathttp: move http.Handler for forward http requests to services/nodes and middleware into separate flathttp pkg 573deeb cmd/flatend: allow for config file to not be available, and add warning 1e553ce cmd/microservice: remove c416938 examples/go/clock, net, node: fix bidirectional rpc being clogged by unread body, randomly shuffle providers around for now, and add clock example 1e698db examples/go/clock: format logs 7bcd451 examples/go/clock: update readme 57a5345 examples/node: updated all node examples 26bd72a examples: add counter example for go and nodejs bbfd792 examples: add file example in go and nodejs 7a9c22a examples: add hello_world in go and nodejs e9b201c examples: add pipe example in go and nodejs 74bce78 examples: add todo example for go a6261b6 examples: add todo example for nodejs f10b026 node: only print that you are connected to a provider when its your first time, and print that the provider was re-probed otherwise 4210be1 sdk/node: add cleanup listeners to socket, re-add reconnection loop for dialed nodes 5795199 sdk/node: add description and version and rename 'prepublish' to 'prepare' 6a41573 sdk/node: cleanup Node.start(), refactor packet.ts and flatend.ts into separate files, fix some type checks 6df8fed sdk/node: convert ipv6 to ipv4 if it may be mapped to ipv4, implement peer discovery, fix multiple unnecessary dials, have registerProvider() return if the provider existed or not before it was registered f79206a sdk/node: fix FindNodeRequest taking a target that is a public key instead of an id, have clients map keep track of sockets and create a Provider class that replaces the Client class, add onPeerJoin method that handles an incoming handshake request, have nodes send back a handshake reply, handle FindNodeRequest 64122c5 sdk/node: fix provider not being registered when spammed with requests on startup c6118b7 sdk/node: implement FindNodeRequest, FindNodeResponse, and kademlia routing table f0d5abd sdk/node: instantiate routing table for nodes, package away dns resolve into util methods, have routing table only require specifying a public key it should position entries relative to aca83ce sdk/nodejs, readme: export ID as a packet, and format out options on readme 79bf013 v0.0.2

v0.0.1

3 years ago

Changelog

56216c8 all: initial commit 37acc09 all: mesh networks of microservices a79b2af all: wip 57166ff cmd/flatend, codec, config, handler, http: temporarily disable csv codec, remove default handlers, add sqlite example a7c3633 cmd/flatend, config: support serving static files 8112765 cmd/flatend, handler, http, http/utils: allow Handler.Serve() to return errors, stop execution of Handler upon discovery of an error, set default codec to nil, return original error for http util helper method httpError() 5668eae cmd/flatend, handler, http, http/utils: impl http server, refactor passing in contexts and configuration, add check for content-length == 0 for getBodyParams 259f156 cmd/flatend, httputil/octet, config, http, http/test: implement http routing, expose IsSpace and IsToken from httputil, implement and create tests for Route and ParseRoute, refactor how http routes are registered to flatend 65ce479 cmd/flatend, nodejs: make configuration for a flatend node simpler, and port nodejs sdk to typescript c296bc1 cmd/flatend: add port to https d81b7a6 cmd/flatend: add support for http -> https redirect 204bf30 cmd/flatend: add support for specifying domains vs bind addrs 9a7f0b7 cmd/flatend: cleanup dir structure, remove unused dep jsoniter 957e153 cmd/flatend: initial exploration on tui d6f5f67 cmd/flatend: initial support for https 601a42b cmd/flatend: migrating ui from blanc 428b0fb cmd/flatend: read http.ErrServerClosed as io.EOF 57180a1 codec, config, http: separate config into separate module, add toml codec support, initial wip on routing ec4e7c5 codec, handler, pool: temporarily remove xml encode/decode, add aliases for yaml, fix csv encoding/decoding, 96a86d7 codec: fix passing map to reflect codec Unmarshal() eab0dd6 config: cleanup funcs s.t. config may not only be declared via starlark d18b470 constrain: impl non-lazy eval of expression and re-impl ('&', '|', '>', '>=', '<', '<=', unary '-') 1edaf7b error, handler, http, pool: implement sql query handler, allow for unwrapping of flatend.Error, add pooling for value buffers f27dfd9 flatend: remove // @ts-ignore 3c3d816 flathttp/error, flathttp/server: cleanup error handling, and separate errors and error utils into a separate file 5e30c01 flathttp/middleware: add content length check with test bc32326 flathttp/test: have getAvailableAddrs guarantee to not emit duplicate available bind addrs 6155649 flathttp: add basic rate limiting support, and fix content length check for requests with empty bodies fb7afd5 flathttp: add max duration to wait until we timeout a request 14143d8 flathttp: impl http server that can have a config reloaded s.t. it may listen to one or several net.Listeners or be shut down at any time 5f3270d flathttp: only add Retry-After header and wait_until in error response if delay is sensible b00748d flathttp: reposition methods in server.go e7f95c7 flathttp: set ctx after timeout set 2cc98eb go: remove unnecessary deps d5c2597 handler, http: have ContentEncode not write anything if there is no output to encode b8c55a3 handler, readme: allow ContextHandler to load from another context as well, and add request lifecycle to readme 301bc54 handler: do not include pagination params in output if params not provided 8cdb103 handler: impl pagination spport for sql query handler 148ddd1 handler: parse pagination parameters limit/offset as either strings or integers, and set boundaries on [min, max] for limit 03347d4 handler: remove NegotiateCodec and use httputil.NegotiateContentType instead a3699e9 http, handler, error: created generalized flatend.Error, remove httpError in place for writeError in flatend.Server,initial work on sql handler a5d210a http, http/utils, handler, pool, cmd/flatend: implement codec registration/negotiation, decoding header/query/body params, and barebones cuelang repl 76e3d4e httputil, codec, handler, http: expose parser methods for Accept headers, register codecs by MIME types, encode response with negotiated header f22c55e listen, cmd/flatend: fix shutdown for Listener, preserve body if it is valid utf8 else base64 encode it 888a6be listen, mod, nodejs: wip on more versatile listener api, move from /ts/ folder to /nodejs/ folder 3324c70 listen, nodejs: add support for handshake packets and request packets to Listener, use 'end' event instead of 'close' event for monte sockets in nodejs 4caf26c net, node, sdk/js: add backpressure support to MonteSocket, implement ResponsePacket to allow for more flexibility of responses from microservices 210581c net: add WriteHeader to flatend microservice api 6f97dcd node, cmd/flatend, sdk/nodejs: use log pkg, parse addr from config.toml, update example a36cc01 node, net, cmd/flatend, cmd/microservice: significantly simplify node code and allow for ids to be nil b9f1d0d nodejs: commit yarn.lock a6cb949 nodejs: simplify where successful connection message is logged, update gitignore ab61c75 orbis: add additional check in case lexer gone too far ahead eof 8c57274 orbis: add op rules for '+' and '-', impl constraint rules and set union/intersection of constraint rules using '&' and '|' op 5301241 orbis: cleanup lexNumber and lexEscapeChar f57bd67 orbis: disallow inputs from being booleans 8b4980e orbis: fix condition for op right associativity, add token string formatting, set precedences for operators, impl unary negation 47a7361 orbis: fix escape binary num check 77570a9 orbis: fix off-by-one on lexing decimals, and initial work on shunting yard evaluator for constraint types f099997 orbis: fix precedence eval, remove rule struct, add constraint rule types, impl intersection and union of rules, remove some debug printing 7a5e5f4 orbis: impl '!' op, fix '>=', '>', '<=', '<' operand checks 90eb2dc orbis: impl '+' and '-' op ba1b352 orbis: impl evaluation for '<' and '<=' 54e9cbb orbis: impl right associative ops, allow specifying associativity of op, and impl evaluating negation via unary '-' op d29636e orbis: initial work on constraint lexer 9da2c63 orbis: remove and export into separate repo 'boat' 3872f77 orbis: return eof token upon reaching end of input, and have lex return one token at a time 4027216 orbis: simplify rune checks into helper util methods 8fbccf1 provider, packet, node, net, sdk/nodejs, cmd/flatend, cmd/microservice: allow for large amounts of data to be sent and received between microservices by implementing streams and chunked transfer encoding 80b8d9d sdk/go: fix parsing services in handshake packet 671217b sdk/js, cmd/flatend, node: add commandline flags to flatend, move flatend lib to separate file in js sdk 25b423e sdk/js, net, node, peer, provider: initial work for allowing for anonymously-identified microservices 7c15a73 sdk/js: add reconnection logic, and cache peer info upon successful connect cafa9f3 sdk/js: cleanup code and split into separate js modules 22a6521 sdk/js: cleanup example a bit c7ea1cc sdk/js: do not allow for backtracking upon backpressure in monte socket cfc275a sdk/js: handle nil responses e8ed933 sdk/js: implement flatend protocol in javascript 65197bd sdk/js: quick format ae8b1ce sdk/js: reimplemented reconnection logic fcbd554 sdk/js: resolve multiple listeners on the same sequence number 553aa0b sdk/js: revert back to using listenerCount() and emit for handling requests c49f913 sdk/js: temporarily disable backpressuring for the stream as it causes data to be lost e7e9556 sdk/js: update yarn bd47556 sdk/nodejs, readme: prepare to publish for npm, cleanup readme fb5b21c sdk/nodejs: add body() function with default limit of 64kb for reading body, and catch errors and return them as json 4f34ace sdk/nodejs: add send() and json() express-esque methods 8dd92bb sdk/nodejs: cleanup example 7e98524 sdk/nodejs: fully cleanup client when socket ends 4e68f6b sdk/nodejs: remove unused package-lock.json 7181f48 server, config, middleware: impl httprouter, encapsulate init/cleanup methods for server, encapsulate cancellable sleep into util helper method, expose config Reset() method 6a2b7f5 service, net, cmd/microservice: add microservice example, simplify microservice init code, move http request structure to cmd/flatend 6396f5a service: add Register method to builder