GithubHelp home page GithubHelp logo

isabella232 / clj9p Goto Github PK

View Code? Open in Web Editor NEW

This project forked from cognitect-labs/clj9p

0.0 0.0 0.0 148 KB

Research and Innovation Group - 9P library for Clojure

License: Apache License 2.0

Clojure 53.84% Python 45.69% Shell 0.47%

clj9p's Introduction

clj9p

This library is an implementation of the 9P Protocol.

Bell Labs built an entire vision around "microservices" from 1985-2004 and at the foundation is 9P.

9P, originally built to underlay the Plan9 Distributed Operating System, is the logical conclusion of the Unix philosophy - "everything is a file."

With 9P everything really is a file (synthetic or real) - this includes devices (CPUs, GPUs), kernel stacks (like the networking stack), distributed services, remote files, ... everything. The client/consumer decides how to consume all "files" with a userland/client-based mount. That is, mount unions together all "file systems", producing a single, resolving, file system upon which the client operates.

For more details read the 9P intro man page or look at the example file system

NOTE: This repository also includes useful Netty utilities for building networked servers and clients.

Usage

FIXME

TODO

  • Enhance client mount to allow "accruing" routes under a single point, over lifetime
  • Add PKI auth, in the same style as py9p
  • Add DTLS/SSL support via server/client options, passing in an SslContext (created with SslContextBuilder) or some aux fn.
  • Try StartSSL as the default option

Copyright and License

Copyright © 2019 Cognitect

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

Dependencies

  • Clojure and related libraries are released under EPL 1.0
  • Netty is released under Apache 2
  • Parts of the 9P implementation were based on py9p and go9p, both released under BSD

clj9p's People

Contributors

mtnygard avatar ohpauleez avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.