Git Product home page Git Product logo

postman-collection's Introduction

Postman Collection SDK Build Status codecov

Postman Collection SDK is a NodeJS module that allows a developer to work with Postman Collections. Using this module a developer can create collections, manipulate them and then export them in a format that the Postman Apps and Postman CLI Runtimes (such as Newman) can consume.

A collection lets you group individual requests together. These requests can be further organized into folders to accurately mirror your API. Requests can also store sample responses when saved in a collection. You can add metadata like name and description too so that all the information that a developer needs to use your API is available easily.

To know more about Postman Collections, visit the collection documentation section on Postman Website.

The new Collection Format v2 builds a stronger foundation for improving your productivity while working with APIs. We want your feedback and iron out issues before this goes into the Postman Apps.

Installing the SDK

Postman Collection SDK can be installed using NPM or directly from the git repository within your NodeJS projects. If installing from NPM, the following command installs the SDK and saves in your package.json

> npm install postman-collection --save

Getting Started

In this example snippet we will get started by loading a collection from a file and output the same in console.

var fs = require('fs'), // needed to read JSON file from disk
	Collection = require('postman-collection').Collection,
	myCollection;

// Load a collection to memory from a JSON file on disk (say, sample-collection.json)
myCollection = new Collection(JSON.parse(fs.readFileSync('sample-collection.json').toString()));

// log items at root level of the collection
console.log(myCollection.toJSON());

After loading the collection from file, one can do a lot more using the functions that are available in the SDK. To know more about these functions, head over to Collection SDK Docs.

Postman Collection Schema

The collection schema outlines the JSON definition of data structure accepted by the constructor of each properties of this SDK. In other words, this SDK provides JavaScript level object manipulation for the JSON structure defined by Postman Collection Format in http://schema.postman.com/.

Schema Version Compatible SDK Versions
1.0 none
2.0 <3.0
2.1 >= 3.0

Conceptually, a JSON input to the constructor of an SDK property should provide similar output when that property instance's .toJSON() is called.

postman-collection's People

Contributors

appurva21 avatar atulbi avatar codenirvana avatar coditva avatar czardoz avatar deepakpathania avatar dependabot-preview[bot] avatar dependabot[bot] avatar dhineshsridhar avatar dhineshwiz avatar greenkeeper[bot] avatar greenkeeperio-bot avatar harryi3t avatar himanshu226 avatar kamalaknn avatar kunagpal avatar lucifercr07 avatar pankajk07 avatar sadakchap avatar samvelraja avatar shamasis avatar shubhambhargav avatar shubhbhargav avatar snyk-bot avatar tranhungt avatar undermuz avatar vedkribhu avatar vegetableman avatar vikicoder avatar vjrngn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

postman-collection's Issues

Run in Postman button fuzzy on retina displays

I apologise in advance as I'm sure this isn't the right place to add this - I couldn't find a suitable repo (the docs repo doesn't have issues enabled).

The "Run in Postman" button is not high-res so looks fuzzy on high-res/retina displays. This is when using the Share option in Postman to generate the javascript to display a Run in Postman button.

The background image should be double-sized and use css to reduce size by 50%. We could probably fix this ourselves using our own css, but I think it should be handled by Postman.

postman json prompt problem

when i wrote json http body, it has prompt,I'm happy, but there exist a small problem。If there is a JSONArray in the json String, it will prompt error like this:
 problem

However, the json String is absolutely right.

How to use Data variables in raw XML post body in collection?

I have created 2 XML post requests in collection and each post request will return XML response. I tried to form chain request from response returned in first request. I captured few values from response and tried to pass those in XML POST body of second request but could not. I tried with {{variable}} but it is not working. i am posting as application/xml content type.
actual raw XML :

How i want:

Import collections

When I do import collections from a folder, some collections already exist and a message box displays to ask me Replace or Import as Copy. I have to click so many times repeatedly because it asks for every single collection. It is more helpful when we have an option that says "Do it for all" to apply for all actions.

Regards,
An.

Request Query params breaking when getting Collection.toJSON()

I'm trying to use postman-collection to programatically generate postman collections. However I've been experiencing some errors.

For example, the following code:

    var collection = new Postman.Collection();
    var item = new Postman.Item({"id":"52a377ae-d3af-4000-8ed0-ba71c21912e1","response":[],"event":[],"name":"GET - /integers/","request":{"url":"https://www.random.org:443/integers/?num=1&min=0&max=255&col=16&base=10&format=plain&rnd=new","method":"GET"}})
    collection.items.add(item);
   fs.writeFileSync("myCollection.postman_collection", JSON.stringify(collection.toJSON()));

produces the following postman collection:

{
    "event": [],
    "info": {
        "id": "310cb9eb-14c2-47a5-b3e2-7ca1caa73818",
        "schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json"
    },
    "item": [
        {
            "_": {
                "postman_requiresId": true
            },
            "event": [],
            "id": "52a377ae-d3af-4000-8ed0-ba71c21912e1",
            "name": "GET - /integers/",
            "request": {
                "method": "GET",
                "url": "https://www.random.org:443/integers/?members=num=1,min=0,max=255,col=16,base=10,format=plain,rnd=new&reference=[object Object]&Type=function PostmanQueryParam(options) {\n        // this constructor is intended to inherit and as such the super constructor is required to be excuted\n        QueryParam.super_.apply(this, arguments);\n\n        this.update(options);\n    }"
            },
            "response": []
        }
    ],
    "variable": []
}

notice how the query parameters get completely mangled in the process. They are separated by , instead of &. Also, there is a whole new section being added in the query string, which seems to be part of the source code:

(...) &reference=[object Object]&Type=function PostmanQueryParam(options) {\n        // this constructor is intended to inherit and as such the super constructor is required to be excuted\n        QueryParam.super_.apply(this, arguments);\n\n        this.update(options);\n    }

Write new collection to file broken

When you follow your basic example to create a new Collection to a file on disk here:

var fs = require('fs'),
    Collection = require('postman-collection').Collection,
    mycollection;

myCollection = new Collection({
    info: {
        name: "my Collection"
    }
});

// log the collection to console to see its contents
fs.writeFileSync('myCollection.postman_collection', myCollection.toString());

The myCollection.postman_collection file is created but it only has the following present inside the file:
[object Object]

Schema Validation getting passed in Postman even when I am expecting it should fail

Below is sample response from server:

{
    "errors": [
        {
            "type": "InvalidTokenError",
            "message": "Invalid access token: 491176d2-25b9-47c2-9f0e-ceb64ac803fc"
        }
    ]
}

For above response, correct schema should be:

    "properties": {
        "errors": {
            "items": {
                "properties": {
                    "message": {
                        "type": "string"
                    },
                    "type": {
                        "type": "string"
                    }
                },
                "type": "object"
            },
            "type": "array"
        }
    },
    "type": "object"
}

But I have written schema :

{
    "properties": {
        "pages": {
            "items": {
                "properties": {
                    "pageId": {
                        "type": "string"
                    },
                    "pageVersionNumber": {
                        "type": "integer"
                    },
                    "widgets": {
                        "items": {
                            "properties": {
                                "widgetId": {
                                    "type": "string"
                                },
                                "widgetVersionNumber": {
                                    "type": "integer"
                                }
                            },
                            "type": "object"
                        },
                        "type": "array"
                    }
                },
                "type": "object"
            },
            "type": "array"
        },
        "uid": {
            "type": "string"
        },
        "upgradeInfo": {
            "properties": {
                "deployedDate": {
                    "type": "string"
                },
                "deviceType": {
                    "type": "string"
                },
                "forceUpdate": {
                    "type": "boolean"
                },
                "releaseNotes": {
                    "type": "string"
                },
                "softUpdate": {
                    "type": "boolean"
                },
                "versionId": {
                    "type": "string"
                }
            },
            "type": "object"
        }
    },
    "type": "object"
};

Above schema is for positive scenario.

Both schema are getting passed in postman.

tests["Valid Schema for Registered User"] = tv4.validate(responseJSON, schema);

Am I doing any mistake?

AWS SIGv4 issue

Hi All

Trying to access an API I created on AWS which is requires AWS_IAM authorisation. I've followed what I can find on the AWS and Postman docs and I am receiving an error that by all accounts appears to be fixed already

"message": "The request signature we calculated does not match the signature you provided. Check your AWS Secret Access Key and signing method.

The one thing to note that seems to be different from other peoples examples (issue 1663) is the Authorization tab which doesn't appear to have session token option. It doesn't appear on the screen

Postman version OSX 4.8.1 on Chrome 54.0.2840.71

Anyone got some tips or clues as to why the sig is not working?

Error in example code for Item constructor

For this example code in Item doc:
`var Collection = require('postman-collection').Collection,
Item = require('postman-collection').Item,
myCollection;

myCollection = new Collection({
"item": [{
"id": "my-folder-1",
"name": "The solo folder in this collection",
"item": [] // blank array indicates this is a folder
}]
}); // create a collection with an empty folder
// add a request to "my-folder-1" that sends a GET request
myCollection.items.one("my-folder-1").add(new Item({
"name": "Send a GET request",
"id": "my-get-request"
"request": {
"url": 'https://postman-echo.com/get",
"method": "GET"
}
}));`

We have an ItemGroup and then a blank item array.
So myCollection.items.one("my-folder-1").add(new Item({
should be myCollection.items.one("my-folder-1").items.add(new Item({

  1. Traverse top level where ItemGroup and Item reside
  2. Find by id
  3. Get the items prop for that item
  4. Then call add to add another item

Postman And Newman OAuth1 Generating different Signatures

Postman collection using OAuth1, when exported to be run into Newman, generates a different signature.
I've dug through and debug the code and have found that the baseUrl being generated for oauth is incorrectly lowercasing the path.
As a note, path lowercasing is not in the Oauth1 RFC. Case sensitivity of the path is also necessary for proper API routing.

https://github.com/postmanlabs/postman-collection/blob/develop/lib/collection/url.js#L325

I have confirmed that removing path.toLowerCase() to just be path fixes the problem.
I'll look into putting in a PR with additional tests.

For reference:
Oauth1 RFC: 3.4.1.2. Base String URI
https://tools.ietf.org/html/rfc5849

Collection variables do not seem to work

I am trying to import a collection with some variables pre-set in it.
Here is the part of my .postman_collection that does that:

{
  "variable": [
    {
      "id": "hostUrl",
      "name": "hostUrl",
      "value": "__TEST__",
      "type": "string"
    }
  ]
...

And then in the url I have: {{ hostUrl }}/foo/bar

But when I submit the request in postman - it does not render the variable value - instead it encodes the curly brackets and spaces: http://%7B%7B%20hostUrl%20%7D%7D/foo/bar

Any idea what might be wrong here?

PS I am using postman collection v2 format

Test Plan that errors out is shown as 'All Passed' in Collection Runner

I found this while running a test plan using the wrong environment. The plan errors out before it can run, but in the GUI's Previous Runs history it appears as if the test plan had no errors.

This is an edge case but the phrase All Passed and the color green are definitely unexpected behavior here.

failingcollectionpassing

Environments in a group

Are there plans to create a feature where we can group environments. This would be extremely useful when we have many environments and it becomes unmanageable to scroll through the dropdown list.

Documentation issues.

There are a few issues with the current documentation which are listed below.

Edit 1

Edit 2

Will keep updating this as new issues are found.

Postman collection not working with Newman 3.2.0

Hi Team,

With the latest release of Newman(from version 1.3 to 3.2 ), the postman scripts are not working with Newman.
We are getting the below error :
ReferenceErr $ is not defined.

PFA sample script created for this.
Can you please provide your inputs, as this was working fine with the old Newman version.
Test.postman_collection.zip

about build new item

I want build a new item ,append in the collection. my code is like this:

var fs = require('fs'), // needed to read JSON file from disk
    Collection = require('postman-collection').Collection,
    Event = require('postman-collection').Event,
    Request = require('postman-collection').Request,
    Response = require('postman-collection').Response,
    Header = require('postman-collection').Header,
    Item = require('postman-collection').Item,
    Url = require('postman-collection').Url,

    myRequest,
    myResponse,
    myHeader,
    myEvent,
    myCollection,
    myItem,
    myUrl;

myCollection = new Collection(JSON.parse(fs.readFileSync('test.json').toString()));

myEvent = new Event(
    {
        "listen": "test",
        "script":  "tests[\"Status code is 200\"] = responseCode.code === 200;\r"

    }
);

var rawHeaders = [{'Content-Type': 'application/json', 'User-Agent': 'MyClientLibrary/2.0'}];

myHeader = rawHeaders.map(function (h) {
    return new Header(h);
});

myUrl = new Url({
    "host": "domain.com",
    "path": "/my/path/to"
});


myRequest = new Request({
    "name": "request name set",
    "method": "POST",
    "url": myUrl.toString(),
    "headers": myHeader,
    "body": {
        "mode": "raw",
        "raw": "{\n\t\"param1\":\"{{random_domain}}\n}"
    },
    "description": "request-desc"
});


myResponse = new Response();

myItem = new Item(
    {
        "name": "item-name",
        "event": myEvent,
        "request": myRequest,
        "response": myResponse
    }
);
myCollection.items.add(myItem);

fs.writeFile(
    '/tmp/collection.json',
    JSON.stringify(myCollection.toJSON()),
    'utf8',
    function (err) {
        if (err) {
            console.log(err);
        }
    }
);

saved demo.js. then run :node demo.js

/tmp/collection.json content like this:

{
	"info": {
		"id": "a04ef471-542a-e299-f260-4904a5b65f92",
		"name": "collection-name",
		"schema": "https://schema.getpostman.com/json/collection/v2.0.0/collection.json"
	},
	"event": [],
	"variable": [],
	"item": [{
			"_": {
				"postman_requiresId": true
			},
			"id": "b7ac2c08-2b5b-4b67-a8e1-47ca31ec58bd",
			"name": "item-name",
			"request": {
				"url": "domain.com/my/path/to?members=members=,reference=[object Object],Type=function PostmanQueryParam(options) {\n        // this constructor is intended to inherit and as such the super constructor is required to be excuted\n        QueryParam.super_.apply(this, arguments);\n\n        this.update(options);\n    }&reference=[object Object]&Type=function PostmanQueryParam(options) {\n        // this constructor is intended to inherit and as such the super constructor is required to be excuted\n        QueryParam.super_.apply(this, arguments);\n\n        this.update(options);\n    }",
				"method": "POST",
				"body": {
					"mode": "raw",
					"raw": "{\"param1\":\"{{random_domain}}}"
				},
				"description": {
					"content": "request-desc",
					"type": "text/plain"
				}
			},
			"response": [],
			"event": []
		}
	]
}

no event an no request headers in the new item , why ?

Header "Content-Type" is not exported properly

Hi guys

There seems to be a problem with the export of headers.

If I export a collection in collection format v1 the header "Content-Type: application/x-www-form-urlencoded" has a space between "Content-Type" and the colon ":"

Example:

wrong:
Content-Type : application/x-www-form-urlencoded"

correct:
Content-Type: application/x-www-form-urlencoded"

If I export the same collection in collection format v2 the whole Content-Type header is missing.

Example:

wrong:

                "header": [
                    {
                        "key": "Authorization",
                        "value": "Basic {{bearer_token}}",
                        "description": ""
                    }
                ],
                "body": {
                    "mode": "urlencoded",
                    "urlencoded": []
                },
                "description": ""
            },

correct:

                "header": [
                    {
                        "key": "Authorization",
                        "value": "Basic {{bearer_token}}",
                        "description": ""
                    },
                    {
                        "key": "Content-Type",
                        "value": "application/x-www-form-urlencoded",
                        "description": ""
                    }
                ],
                "body": {
                    "mode": "urlencoded",
                    "urlencoded": []
                },
                "description": ""
            },

Kind regards,
Polly

Duplicated Requests not saving Responses

When I duplicate a request and modify it I will save the response with the same name as the previous one. When I view the Docs the saved response is not updated but rather shows the original. I have had some success with running/saving many times, close Postman and re-open, but this does not always work.

false gets stored as NULL in postman.setGlobalVariable

Native Mac Version 5.0.0 (5.0.0) / Version 5.1.0-canary01 (5.1.0-canary01)

We have a lot of code like:

var A = B ? true : false;
postman.setGlobalVariable(“global”, A);

If B resolved to true then global is set to true, however if B is resolved to false then global is set to Null instead of false.

I’m fairly sure this is a regression in Postman as we have we have had code like the above for quite a few months now.

siddhant on teh Slack channel:

siddhant [17 hours ago]
redpacmanghost: Hey, can you file this on GitHub? I think I know why this is happening, so we'll get this fixed

Exporting a Run as JSON

In the image Gelatin (A) is a collection with 2 folders:

  1. ALL
  2. Registered

When I run the TEST it goes fine & runs only REGISTERED, but when I try to export REGISTERED only from the sidebar of the RUNNER, the exported JSON file contains ALL too. I only want to have REQUESTS from REGISTERED only to be exported as JSON to run on newman.

collections

Order of requests gets lost in Doc page

I have sorted my Postman collection in the order that is logical for a consumer, however, when I view it in the docs I can see the order has been mangled. I duplicate quite a bit, so I wonder if that has something to do with it.

Post-test fail when run to use postman-collection

I run a post test with two parameters(string+file) and the result is passed(correct).

I run the same test inside a collection and the result is passed(incorrect)..the details as shown "400 Bad Request" ... and I lost a parameter(type file).

test

I have configured as test:
tests["response code is 200"] = responseCode.code === 200;

Version postman:

Postman for Linux
Version 4.10.7
linux 4.4.0-63-generic / x64

Pre request script : be able to choose order of execution

When executing a pre request script I do 2 things :

{
 postman.setGlobalVariable("text",data.text)
encryption part
} 

The encryption parts enables me to communicate with the server I need to test by encrypting the body (json) with a signature.

When I execute the POST request it firsts encrypt the body (generate a signature) then change the body. As a consequence the signature sent is always the same (before setting the text variable) and I am always forbidden to communicate with the server.

How can I be sure that it first set the variable then encrypt the body ?

Loading Collection from file not working

I used the example code

var fs = require('fs'), // needed to read JSON file from disk
    Collection = require('postman-collection').Collection,
    myCollection;

// Load a collection to memory from a JSON file on disk (say, sample-collection.json)
myCollection = new Collection(JSON.stringify(fs.readFileSync('sample-collection.json').toString()));

// log items at root level of the collection
console.log(myCollection.toJSON());

Got output:

{ info:
   { id: 'f1161659-096f-415e-86ab-9f6d06749c7e',
     name: undefined,
     version: undefined,
     schema: 'https://schema.getpostman.com/json/collection/v2.0.0/collection.js
on' },
  event: undefined,
  variable: undefined,
  item: undefined }

Node v.4.3.0
sample-collection.json
https://gist.github.com/vaibhav93/76a4142f5a36bb1b61bdf626df5d7eee

copy the real url string instead of the Environment/Global variables

hi, when we use Environment/Global variables, the url is presented like:
www.google.com/foo/{{profile}}
while the {{profile}} variable stands for develop,
so, could postman add a feature or function which can copy the exactly url string:
www.google.com/foo/develop
instead of :
www.google.com/foo/{{profile}}

thanks.

qq 20170724182819

How can I get the input parameters inside testscripts?

I am trying to do input validation ( whether the input and output parameter values are equal) in postman. For example, if I am sending payload as {"name":"test"} and if I am getting response as {"name" : "test"}, I need to check the key "name" in response is same as payload (i.e) test, dynamically. for that I need to get input parameters (query and payload) inside testscripts. How can i get the input parameters inside testscripts?

Thanks in Advance!

Folder.description type mismatch with v2 collection schema

When writing out a Collection object to JSON, the resulting JSON is not valid per the v2 Collection schema.

The issue is that the JSON output contains Folder.description properties serialized as Description objects (containing content and type properties), while the Folder.description property as defined in the v2 Collection schema accepts only string values.

This presents a problem when trying to use the Postman API to create/update a shared collection. Since your API is validating the input JSON against the schema, any output generated from postman-collection results in the following response, and the collection cannot be saved:

{ "error": { "name":"malformedRequestError", "message":"Data does not match any schemas from \"oneOf\" at item.0" } }

Collection Runner not loading

Version 5.3.1
OS X 14.5.0 / x64

Collection Runner is stalling out. Unable to run collection
When I attempt to run a collection of tests, the collection window pops but then goes blank. Attached screen shot.

screen shot 2017-10-20 at 10 42 20 am

Issue with Runner from update 4.11.0 - Data unavailable (only data about the top 10 historical runs is stored)

Hi,

I'm running test collections using the Windows Desktop x64 version of Postman, update 4.11.0 recently installed. Here are my system properties:

image

Ever since downloading this recent update, my test runs will only get one response: Data unavailable (only data about the top 10 historical runs is stored). If I send a request from the "Builder", I get a normal response. Also, I can use the Collection Runner in the Chrome App without any issues.

Here's a screen shot of the response in the desktop version that is causing the issue:

image

I tried deleting old test runs to clear space, but that didn't work.

Please help! Thank you.

Executing a request n times with different input values in json body from previous request

I have two requests (descargaListaEncargo and descargaEncargo). In the first request, I get an array with idEncargo which I set in global variable. In second request, I get info about idEncargo which is passed as input parameter in body

Body for descargaEncargo:

{
   "idEncargo":{{encargo}} 
}

In pre-request script for this request, I put the next code:

var listaEncargos = JSON.parse(postman.getGlobalVariable("listaEncargo"));

for (var i = 0; i < listaEncargos.length; i++) {
    postman.setGlobalVariable("encargo", listaEncargos[i]);
} 

Variable listaEncargo is set in previous request descargaListaEncargo like an array of idEncargo. To execute descargaEncargo, request only takes the last value in array.

Somebody could help me?

Support "disabled" in query params

I'm trying to generate a collection with several disabled by default query parameters, but passing disabled to query params doesn't actually disables them.

Looking at the exported JSON and the source code, only key and value are present.

Is there a reason why disabled wasn't included in query params like headers?

Feature Request

Stakeholder : Postman Client User (Developer)
Problem/Need : To be able to organize and re-organize related collections (sometimes already organized into folders) easily
Solution : A drag and drop feature in the Postman Client where collections (in folders) can be easily dragged and dropped into other folders (instead of only a single API within a collection)

How to get the saved response into testscript?

Hi,
I am using Postman for RestApi Testing. I am trying to compare JSON response structure with the old JSON response to identify any breakage. For that I need the saved response (previously saved response) to compare with the current response. how to get the saved response into testscript, so that I can use that old saved response to check the structure change? or any other way is appreciable?

Thanks in Advance!

Content-Type charset=UTF-8 invalid

Content-Type:application/x-www-form-urlencoded;charset=UTF-8
I want to set the default encoding to utf-8 but when sending a request is not utf-8

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.