mimecuvalo / paramikojs Goto Github PK
View Code? Open in Web Editor NEWport of the paramiko library from python→javascript
Home Page: http://fireftp.net
License: Other
port of the paramiko library from python→javascript
Home Page: http://fireftp.net
License: Other
ECDSA/Curve25519 for KEX, SHA2 as MAC and AES-GCM/ChaCha20 as cipher are getting more widespread, and I'd rather not drag along the old baggage on my servers for backwards compatibility with FireFTP (like we did with SSL3…).
I know this is far from a small request, but it'll be necessary sooner or later. The reduced CPU load from ed25519 would be a nice side effect, as FireFTP is cripplingly slow right now.
The JS version is a fork of the 1.7.7.1 Python version. Since then it's been updated with various commits that should be ported in.
This is a feature request.
I find it awkward that I need to create my real transport (cough_WebSockets_cough) outside of paramikojs and pass in a writeCallback
to do writes and need to manually edit transport.fullBuffer
to make reads work. Paramiko-python doesn't need this because it can use threads. However, in lieu of threads, setInterval()
could be used on transport.run()
to handle reads and instead of passing writeCallback
, transport could be an base class with abstract read()
and write()
methods. This change would make it easier to integrate websockets as I would just write a subclass of transport
.
I sort of like the idea of exposing the event processor (transport.run()
)--it fits nicely with my twisted/asyncio/SDL training--so I'm not entirely sold on secretly using setInterval()
... but if original Paramiko does secret threads, maybe it's the quickest and most reliable choice.
Sort of relatedly, it's annoying that I need to poll (recv
+WaitException
~= select(..., 0)
) to get data out of a paramikojs shell session. I would rather set an event listener to be called when data comes in.
I'm trying to run paramikojs from the web. I find that it depends heavily on Components.classes
; Firefox 32 does not have this object and plus https://github.com/mimecuvalo/paramikojs/blob/master/kryptos/Hash/SHA.js#L13 is giving me a warning that even "The Components object is deprecated. It will soon be removed."
I was just going to submit a pull request that erased all the Mozilla specific calls--I was assuming I could just use the drop in replacements written and marked with // Chrome
--but then I realized this problem goes deeper that kryptos/ and that I'm out of my depth, so I'm logging an issue in case I get distracted and forget.
Is Components.classes
reliable inside of extensions or is it just going away entirely? Does this break FireSSH in new browsers?
Hi,
I hope this message can deliver to correct people.
I am using latest el-capitan osx on my macbook. Probably that error occurred after than I run some commands on terminal.
I was create ssh keys ssh-keygen and ssh-add commands also I was run ssh-agent..
Now the problem is occurs only while connecting sftp hosts, I can still connecting ftp sites.
I saw that error message on fireftp's console;
Thanks in advance.
paramiko uses inherit()
which is duplicated at both https://github.com/mimecuvalo/firessh/blob/master/src/content/js/etc/common.js and https://github.com/mimecuvalo/fireftp/blob/master/src/content/js/etc/common.js, but is not actually inside of paramiko, making paramiko unusable by itself. Same with log.js
.
And the issue cuts backwards too at this line. Can that line be set to "ParamikoJS" and FireFTP override it? That's how the python http software works.
Hey you should add an open source license to this repo, that way other people can use it!
just testing
This is a feature request. Well, more of a stylistic request.
Paramikojs performs network processes in an entirely async environment. This leads to lots of callbacks everywhere. A lot of this would shortened for readability by the use of promises. The key feature is that the promises/A+ spec declares that promises chain, which means individual steps of an asynchronous process do not need to be hardcoded in what to call next. I recently solved another networking problem--implementing SOCKS5--elegantly with promises. If you put your thumb over all the .then()
s, that _connect()
reads like a synchronous subroutine.
I can't speak for everyone, but I would find the API would be easier to use if I could ask for promises instead of needing to pass in callbacks.
This would require a large overhaul of some code that you are probably a bit tired of, but I wanted to bring the option to your attention.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.